1
4
你知道矩形的大小,你需要把整个角度间隔分割成四个不同的区域,所以你知道从矩形中心来的光线是否与矩形的右、上、左或下相交。 如果角度为-atan(d/w)<alfa<atan(d/w),则光线与矩形的右侧相交。既然你知道从矩形中心到右边的x位移是d/2,那么位移dy除以d/2就是tan(alfa),所以 Dy=d/2*tan(alfa) 你可以用其他三个角度来处理这个问题。 好的,来吧。你有一个宽度为w,深度为d的矩形。在中间有一个中心点,cp。我假设你想计算不同角度alfa值的p。
我把这个矩形分成四个不同的区域,或者角度间隔(1到4)。我上面提到的间隔是右边的第一个。我希望这对你有意义。 首先你需要计算角度间隔,它们完全由w和d决定。 根据alfa的值,相应地计算p,即如果从cp到p的“光线”与矩形的上、下、右或左侧相交。 干杯 |
2
1
这是为Pebble SmartWatch设计的,并经验证可在其上工作,但修改为伪代码:
|
3
0
使用角度作为参数进行此操作的一个简单方法是使用矩形的边界简单地剪裁X和Y值。换句话说,计算位置,就像图标将围绕圆形或椭圆形路径旋转一样,然后应用此选项: (假设轴对齐矩形以(0,0)为中心,X轴长度为x axis,Y轴长度为y axis):
这种方法的问题是,角度将不完全准确,沿矩形周长的速度将不恒定。建模一个椭圆,在它的角落密切矩形可以最小化的影响,但如果你正在寻找一个平滑,恒定速度的“轨道”,这种方法将是不够的。 |
4
0
如果你认为你的意思是像地球围绕太阳旋转一样旋转(而不是自转…所以你的问题是如何沿着矩形的边缘滑动?) 如果是这样,您可以尝试一下:
更新: (请参阅下面的评论) 要使用角度,一条线将
其他线条很简单,因为它们只是水平或垂直的。例如,它是x=50,你可以把它放到上面的线中,得到y。在水平线和垂直线的交叉点做这个(例如,角度是60度,它拍摄“东北方向”……现在你有两点。然后,最接近原点的点是首先碰到矩形的点)。 |
5
0
使用A 2D transformation matrix . 许多语言(例如Java)支持这个(查找的情感转换);否则,编写一个例程来自己旋转,一旦调试好,就永远使用它。我必须用五种不同的语言写。 一旦可以简单地进行旋转,就可以通过执行以下操作找到矩形上的位置 line-line intersection . 通过相交两条线找到环绕图标的中心:
|
6
0
在一张有矩形和旋转中心的纸上画一个草图。首先将矩形转换为坐标系原点的中心(记住转换参数,稍后需要反转转换)。旋转矩形,使其边与坐标轴平行(同样的原因)。 现在您有了一个三角形,在原点处具有已知的角度,另一侧具有已知的长度(矩形一侧长度的一半),现在可以: --解三角形 --撤消旋转 --撤消翻译 |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |
Wadu Hek · 查找列表中唯一的重复项 2 年前 |
Crawford Patten · 如何获得整数列表的四分位数 2 年前 |
MoonGoose · 如何在python中围绕特殊字符创建空间? 2 年前 |
taha khamis · 在一个数字中组合元素的省道 2 年前 |
Soup · 比O(n)更快地找到阶乘n模m 2 年前 |
BigO · 单词积分游戏不断增加数字[关闭] 2 年前 |