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