如何沿圆移动点?

2023-11-24

我想通过使用圆半径和移动角度来以圆周运动移动精灵。

例如,我知道精灵正在以半径 10 的圆内移动,当前位置为 (387,38),角度为 28 度。现在我不想将它沿圆周移动 100px。

Pic describing the scenario

p1 = x&y coordinate, known (387,38) in example with movingangle 28 degrees
r = radius, known (10 in example)
l = distance to move along bend, known (100px in example)
p2 = new point, what is this x and y value?

我有一个可行的解决方案,但我不太喜欢它。这对我来说没有意义,它需要比我想象的更多的计算。它的工作原理是首先使用 p1 计算中心点,然后向后做同样的事情,可以说得到 p2 (使用余弦和正弦)。我相信应该有一种更快的方法,但我找不到任何人这样做。

我标记 cocos2d 的原因是因为这就是我正在使用的东西,有时游戏框架提供了帮助三角学的函数。


尝试这个:

a1 = 28*(π/180)
cen.x = p1.x - r*SIN(a1)
cen.y = p2.y - r*COS(a1)
a2 = a1 + l/r
p2.x = cen.x + r*SIN(a2)
p2.y = cen.y + r*COS(a2)

没有比这更简单的了。从 p1 移动到圆心,然后移动到 p2。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何沿圆移动点? 的相关文章

  • R 中 if-else 中的逻辑运算符

    我有一个名为 mat 的下表 5 列和 3 行 AC CA RES 1 0 2 2 1 3 0 0 0 1 正在执行的操作是mat 1 mat 1 mat 2 我正在测试以下内容 1 如果一行的两列都为零 则结果应为 NA 2 如果一行中只
  • 在现代 x86-64 上计算 64 位整数的整数 Log10 的最快方法是什么?

    标题 我找到了大量 32 位示例 但没有找到完整的 64 位示例 使用这个帖子 https codegolf stackexchange com questions 47290 fastest way to compute order of
  • 如何将数学公式转换为Python代码?

    有没有简单的方法可以将数学公式转换为 Python 代码 也许是译者 网络参考 具体的书籍章节 任何东西 对于正则表达式 有诸如Kodos http kodos sourceforge net 和网站 例如pythonregex com h
  • 将两个大数作为字符串相除,而不使用java中的Bignumbers

    我需要在不使用 Biginteger 的情况下划分两个大整数 因为数字不能存储在原始类型中 因为我需要从给定的字符串中逐个字符地执行此操作 我已经创建了一个名为 BigNumber 的类 用这个类我可以 Add multiply 比较两个内
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • ID3和C4.5:“增益比”如何标准化“增益”?

    ID3算法使用 信息增益 度量 C4 5 使用 增益比 度量 即信息增益除以SplitInfo 然而SplitInfo对于记录在不同结果之间平均分配的分割 该值较高 否则较低 我的问题是 这如何帮助解决信息增益偏向于具有多种结果的分裂的问题
  • 如何将时间间隔划分为不同长度的部分?

    我有一个从 0 到t 我想把这个区间分成一个以2 25 2 25 1 5为周期的累积序列 方法如下 input start 0 stop 19 output sequence 0 2 25 4 5 6 8 25 10 5 12 14 25
  • CC Parallax 节点视差比(说明)

    我觉得问这个问题很愚蠢 但我在任何地方都找不到明确的答案 或者根本找不到答案 所以我觉得我必须问 有没有人可以清楚地解释 CCParallaxNode 的 parallaxRatio 是如何工作的 我检查了CCParallaxNode的来源
  • 如何正确使用CCSpriteFrameCache和CCSpriteBatchNode?

    我不明白当我将 CCSpriteFrameCache 或 CCSpriteBatchNode 添加到我的 cocos2d 应用程序时我到底做了什么 有人可以解释一下以下几点吗 如果你能解释一些的话会很有帮助 请根据你回答的问题在你的答案前写
  • 求从1到N的所有数字的数字之和[重复]

    这个问题在这里已经有答案了 问题 求1到N 包括两端 所有数字的数字之和 时间复杂度应该是 O logN 对于 N 10 总和为 1 2 3 4 5 6 7 8 9 1 0 46 对于 N 11 总和为 1 2 3 4 5 6 7 8 9
  • 如何计算某物是否位于某人的视野中

    我有一个对象 它在 2D 空间中具有位置和速度 两者都由向量表示 对象的视野每侧均为 135 度 它看起来与移动的方向相同 速度矢量 我有一些对象 其在 2D 空间中的位置由向量表示 在图中 蓝色背景上的对象是可见的 红色背景上的对象对主体
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 为什么反向传播神经网络中必须使用非线性激活函数? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我一直在阅读一些有关神经网络的内容 并且了解单层神经网络的一般原理 我理解需要额外的层 但为什么要使用非线性激活函数 这个问题后面跟着这个
  • 判断一个点是否在直角三角形内

    我一直想知道最简单的方法来确定一个点是否位于三角形内 或者在这种情况下 判断一个点是否位于对角线切成两半的矩形内 假设我有一个 64x64 像素的矩形 对于这个矩形 如果传递的点位于矩形的左上角 我想返回 TRUE 值 否则返回 FALSE
  • python中的sin方程不断返回错误的答案

    我认为我的 python 版本有问题 因为我得到了错误的结果 如果您直接在 google 中输入 sin Degrees 39 41 28 您将得到值 0 92150485832 这是给定方程的正确值 然而 当我尝试在 python 中执行
  • 基本的 Python OpenCV 裁剪和调整大小

    有人可以帮我一些裁剪算法吗 它的 openCV 我想弄清楚这一点 我知道方法是crop image y y1 x x1 如果我有一个带有 new dimensionXxnew dimensionY 像素的图像 并且我想将其裁剪为相同的宽度
  • Excel - 确定排列的奇偶性

    我正在处理一个 Excel 工作表 需要确定大小数字的垂直数组的奇偶校验N 该数组包含来自的每个数字1 to N每一次正好一次 在这种情况下 奇偶校验被定义为将加扰数组转换为从小到大排序的数组所需的交换次数 例如 数组 3 1 2 4 具有
  • 计算二维笛卡尔坐标中不规则形状的边界

    我正在寻找一种计算不规则形状边界的解决方案 Lats take a look at Square example 如果我有Minimum x and y and Maximum x and y like MaxX 5 MinX 1 MaxY
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • 如何在 C# 中计算 power-of?

    我不太擅长数学 而且 C 似乎没有提供幂函数 所以我想知道是否有人知道我将如何进行这样的计算 var dimensions 100 100 100 00 3 00 See Math Pow http msdn microsoft com e

随机推荐