Opengl 如何绘制两个等距移动点?
假设一个曲面有两个点在曲面上移动(形成各种直线和曲线),同时遵守以下条件Opengl 如何绘制两个等距移动点?,opengl,graphics,coordinates,Opengl,Graphics,Coordinates,假设一个曲面有两个点在曲面上移动(形成各种直线和曲线),同时遵守以下条件 这两个点之间始终保持恒定的C距离 每个点都有自己的速度和方向向量。当然,这两个参数将根据条件1受到限制。 例如,如果点1的速度为0,而点2正在移动,则会形成一个以点1为中心的圆形 我无法在编程构造中表达这些条件。有人能帮我吗 我正在使用OpenGL,但即使是一个伪代码也可以 vec3 center; while(1): vec3 centerDirection = ... center += cent
vec3 center;
while(1):
vec3 centerDirection = ...
center += centerDirection
float angle = ...
vec3 dir(cos(angle), 0, sin(angle))
vec3 p1 = center + (C/2) * dir
vec3 p2 = center - (C/2) * dir
draw p1
draw p2
这是一个解决方案,移动圆心并确保p1和p2是两个完全相反的点
另一个解决方案:
while 1:
p1 += random
p2 += random
delta = p1-p2
delta.normalize()
p2 = p1 + C * delta
i、 e你限制p2,而不是两点
这是一个解决方案,移动圆心并确保p1和p2是两个完全相反的点
另一个解决方案:
while 1:
p1 += random
p2 += random
delta = p1-p2
delta.normalize()
p2 = p1 + C * delta
i、 您可以约束p2,而不是两个点。在openGL中我实现的如下所示 绘制两点(-SPAN,0,+SPAN,0)//x轴上的两点 然后我旋转坐标系,在上面两个位置画两个点
简单 在openGL中我实现的如下 绘制两点(-SPAN,0,+SPAN,0)//x轴上的两点 然后我旋转坐标系,在上面两个位置画两个点
简单 您需要进一步指定您的条件。从这个例子中,我了解到应该应用另外两条规则:1)没有拖动2)速度优先于方向(点将尝试保持其速度,即使它意味着改变方向)。对吗?你对例子2有把握吗。?在物理模拟中,这将导致第一个点在第二个点围绕它旋转时开始翻滚-如果它们的相对质量大约相等,它们将在向给定方向移动时开始彼此旋转。如果初始移动点的质量更大,第一个移动点将开始绕第二个移动点旋转。想象一个机器人有三个轮胎,后面有两个汽车轮胎,前面有一个脚轮。假设这两个机动轮胎的速度可以独立控制。我想写一个程序来跟踪它们在平面上的运动,你需要详细说明你的条件。从这个例子中,我了解到应该应用另外两条规则:1)没有拖动2)速度优先于方向(点将尝试保持其速度,即使它意味着改变方向)。对吗?你对例子2有把握吗。?在物理模拟中,这将导致第一个点在第二个点围绕它旋转时开始翻滚-如果它们的相对质量大约相等,它们将在向给定方向移动时开始彼此旋转。如果初始移动点的质量更大,第一个移动点将开始绕第二个移动点旋转。想象一个机器人有三个轮胎,后面有两个汽车轮胎,前面有一个脚轮。假设这两个机动轮胎的速度可以独立控制。我想写一个程序,在平面上追踪它们的运动。