我想在屏幕上使用矩形绘制连续的线。我已经修改了矩形形状的厚度,因此它似乎是一条线,而不是矩形。现在,由于我想绘制不同的矩形形状,因此我需要知道该形状的坐标,以便可以对其进行调整,但是给出的功能是,当矩形时,GetPoint仅向我返回一个包含两个值的向量有4分。也许这是一个愚蠢的问题,但是如何获得形状的坐标,如果发生旋转,该如何做呢?我在sfml上读到,GetPoint函数没有考虑旋转和事物。 我附上我想做的事情的链接。 所以我当时想制作一个矩形的列表,看起来像线,为旋转生成一个随机角度,然后创建一个函数来设置图片中的位置(即使我不知道我的想法是否可行,如果有更简单的方法,请随时提出建议)。
答案 0 :(得分:1)
您可以使用getPoint(index)
获得形状的所有点,索引的范围是0到Shape::getPointCount()
(在您的情况下应该为4)。您可以使用自定义矩阵进一步转换这些点,以获取 real 的世界位置。
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));
}