求圆上点的度数 (0-360º)
我正在开发一个小型网络应用程序,我需要在其中旋转形状。我 想通过抓住圆上的一个点来实现这一点 拖动它来旋转图像。
这里有一个快速说明来帮助解释事情:
我的主要圆可以拖动到画布上的任何位置。我知道这是 半径 (r) 且 12 点钟方向 (p0) 始终为 (cx, cy - r)。什么 我需要知道 p1 的度数是多少(0-360°),这样我就可以旋转 主圆的内容与 Raphael.rotate() 相应。
我运行了一堆不同的 JavaScript 公式来找到这个(示例),但似乎没有一个能给我 0-360 之间的值以及我的基本数学技能 都严重不足。
颜色选择器演示(沿着右侧的环滑动光标)具有我想要的行为,但即使在仔细研究源代码,我似乎无法准确地复制它。
任何能指引我正确方向的事情将不胜感激。
I'm working on a small webapp in which I need to rotate shapes. I
would like to achieve this by grabbing a point on a circle and
dragging it around to rotate the image.
Here's a quick illustration to help explain things:
My main circle can be dragged anywhere on the canvas. I know it's
radius (r) and where 12 o'clock (p0) will always be (cx, cy - r). What
I need to know is what degree p1 will be (0-360º) so I can rotate the
contents of the main circle accordingly with Raphael.rotate().
I've run through a bunch of different JavaScript formulations to find this (example), but none seem to give me values between 0-360 and my basic math skills
are woefully deficient.
The Color Picker demo (sliding the cursor along the ring on the right) has the behavior I want, but even after poring over the source code I can't seem to replicate it accurately.
Anything to point me in the correct direction would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
圆心与 p0 之间的角度始终为 +90°。有关更多信息,请参阅
Math.atan2
细节。The angle between the center of the circle and p0 will always be +90°. See
Math.atan2
for more details.