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

问题描述 投票:0回答:2

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

https://imgur.com/a/KUwqn9M

c++ sfml rectangles
2个回答
1
投票

您可以使用

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)); }



0
投票

© www.soinside.com 2019 - 2024. All rights reserved.