如何在 SFML 中找到矩形的坐标?

How to find the coordinates of a rectangle shape in SFML?

我想在屏幕上画一条连续的线,使用矩形。我修改了矩形的粗细,所以它看起来像一条线,而不是矩形。现在,由于我想绘制不同的矩形形状,我需要知道形状的坐标以便我可以调整它们,但是给出的函数 GetPoint 只返回一个包含两个值的向量,当矩形有4分。也许这是一个愚蠢的问题,但我怎样才能得到形状的坐标,如果有旋转,我该怎么做呢?我在 sfml 上读到函数 GetPoint 没有考虑旋转和其他东西。 我附上我想做的事情的link。 所以我想制作一个矩形列表,看起来是线条,为旋转生成一个随机角度,然后制作一个函数来设置图片中的位置(尽管如此,我不知道我的想法是否可行,如果有更简单的方法,欢迎提出想法)。

https://imgur.com/a/KUwqn9M

您可以使用 getPoint(index) 获取形状的所有点,索引范围为 0 到 Shape::getPointCount()(在您的情况下应该为 4)。您可以使用自定义矩阵进一步转换这些点以获得 真实 世界位置。

sf::Shape myShape = /* ... */;
sf::Transform matrix = /* could be myShape.getTransform() */;
for (int i = 0; i < myShape.getPointCount(); ++i) {
    const auto pointInModelSpace = matrix.transformPoint(myShape.getPoint(i));
}