想象一下,在坚持以下条件的同时,有一个表面有2个点在表面上移动(产生各种线条和曲线)。
我无法在编程结构中表达这些条件。有人可以帮助我吗?
我正在使用OpenGL,但即使是伪代码也能为我做。
答案 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轴上的两个点
然后我旋转了坐标系统并继续在两个位置上绘制两个点。
简单!