如何绘制两个等距移动点?

时间:2010-08-15 09:14:29

标签: opengl graphics coordinates

想象一下,在坚持以下条件的同时,有一个表面有2个点在表面上移动(产生各种线条和曲线)。

  1. 这两个点总是并且始终彼此保持恒定的C距离。
  2. 每个点都有自己的速度和方向向量。当然,这两个参数都将根据条件1进行限制。 防爆。如果点1的速度为0且点2正在移动,它将形成一个类似于圆形的圆,其中第一个点是它的中心。
  3. 我无法在编程结构中表达这些条件。有人可以帮助我吗?

    我正在使用OpenGL,但即使是伪代码也能为我做。

2 个答案:

答案 0 :(得分:1)

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

即你限制p2,而不是两点。

答案 1 :(得分:0)

在openGL中我实现了如下

PlotTwoPoints(-span,0,+ SPAN,0); // x轴上的两个点

然后我旋转了坐标系统并继续在两个位置上绘制两个点。

简单!