Программирования с++, библиотека sfml
Как найти координату правого верхнего, левого нижнего и т.д углов прямоугольника sfml?
По дате
По рейтингу
На
1234567891011121314151617181920212223242526272829303132333435363738394041424344
#include <SFML/Graphics.hpp>
#include <iostream>
#include <array>
struct RectangleCorners {
sf::Vector2f topLeft;
sf::Vector2f topRight;
sf::Vector2f bottomLeft;
sf::Vector2f bottomRight;
};
RectangleCorners calculateCorners(const sf::RectangleShape& rectangle) {
sf::Vector2f topLeft = rectangle.getPosition();
sf::Vector2f size = rectangle.getSize();
return {
topLeft,
{topLeft.x + size.x, topLeft.y},
{topLeft.x, topLeft.y + size.y},
{topLeft.x + size.x, topLeft.y + size.y}
};
}
void printCorners(const RectangleCorners& corners) {
std::array<std::pair<std::string, sf::Vector2f>, 4> cornerNames = {
std::make_pair("Top Left", corners.topLeft),
std::make_pair("Top Right", corners.topRight),
std::make_pair("Bottom Left", corners.bottomLeft),
std::make_pair("Bottom Right", corners.bottomRight)
};
for (const auto& [name, corner] : cornerNames) {
std::cout << name << ": (" << corner.x << ", " << corner.y << ")\n";
}
}
int main() {
sf::RectangleShape rectangle(sf::Vector2f(100.0f, 50.0f));
rectangle.setPosition(200.0f, 150.0f);
RectangleCorners corners = calculateCorners(rectangle);
printCorners(corners);
return 0;
}
Больше по теме