今天,我这样做:
我将coordernates(x,z)存储在std :: vector中。
我移动并旋转相同的背景网格: glRotatef(angle_value,0.0f,0.0f,1.0f); glTranslatef(posX,posY,zoom_value);
我这样划线: 在glBegin(GL_LINE_STRIP);
存储在std :: vector中的coordenates我做了一个迭代器: glVertex3f(iterator-> x,iterator-> y,1);
答案 0 :(得分:0)
如果线条由2个后续点组成,并且路径的半宽度为两个垂直方向的扭曲,则会生成四边形。在2D中,只需简单地交换坐标,并在缩放到(dx,dz) -> (-dz,dx) , (dz,-dx)
width/2
上否定
因此,如果您有两个p(i),p(i-1)
坐标,那么(x,z)
坐标为:{/ p>
du=p(i)-p(i-1)
dv=(du.z,-du.x)
dv*=width/(2.0*|dv|)
p0 = p(i)-dv
p1 = p(i)+dv
p2 = p(i-1)+dv
p3 = p(i-1)-dv
这会在后续QUADS
之间产生差距,但要补救仅使用p0,p1
和QUAD_STRIP
...
希望您知道如何计算向量的长度(|dv|
),如果没有看到:
靠近底部...