Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 圆在一定角度下的平移坐标_Math - Fatal编程技术网

Math 圆在一定角度下的平移坐标

Math 圆在一定角度下的平移坐标,math,Math,我有两个圆在某个碰撞点和某个碰撞角度下碰撞,我使用以下公式计算: C1(x1,y1) C2(x2,y2) 连接其中心的线与x轴之间的角度为 X = arctg (|y2 - y1| / |x2 - x1|) 我想要的是,在与另一个圆碰撞的相同角度下,平移顶部的圆。我的意思是,对于角度X,我不知道我应该给出什么样的平移坐标,才能得到正确的和直线的平移 我想你的意思是,这里有一些干净的方法 在向量中思考 假设底部圆的中心有坐标(x1,y1),顶部圆的中心有坐标(x2,y2)。然后定义两个向量

我有两个圆在某个碰撞点和某个碰撞角度下碰撞,我使用以下公式计算:

C1(x1,y1) C2(x2,y2) 
连接其中心的线与x轴之间的角度为

X = arctg (|y2 - y1| / |x2 - x1|) 

我想要的是,在与另一个圆碰撞的相同角度下,平移顶部的圆。我的意思是,对于角度X,我不知道我应该给出什么样的平移坐标,才能得到正确的和直线的平移

我想你的意思是,这里有一些干净的方法

向量中思考

假设底部圆的中心有坐标
(x1,y1)
,顶部圆的中心有坐标
(x2,y2)
。然后定义两个向量

support   = (x1,y1) 
direction = (x2,y2) - (x1,y1) 
现在,两个中心之间的线完全由参数表示描述

line = support + k*direction
使用
k
(-inf,+inf)
中的任何值。在初始时间,在上面的等式中替换
k=1
,确实给出了顶圆的坐标。在稍后的某个时间,
t
k
的值将增加,并将该新值
k
代入方程中,将给出顶圆中心的新坐标

t
增加多少
k
等于圆的速度,这完全取决于你:)


这样做的话,你就永远不需要在任何角度和/或坐标变换等方面乱来。它甚至可以在3D中工作(只要你在任何地方添加
z
-坐标)

一张图片上写着一千多个单词……你能用更多的结构来描述你得到了什么,公式(或函数)是什么?
C(x,y)
,以及你到底想实现什么?我不太明白你在找什么样的翻译。这与OpenGL或一般编程无关。我认为应该改为使用它。@MateurProgrammer建议迁移到您不熟悉的站点可能不是一个好主意;这不是一个糟糕的问题(至少对我来说),它不适合这个网站,所以我决定至少把它推荐给另一个适合它的网站。如果没有,那么这个问题应该问哪个网站?