Para una mejor precisión, y también un buen rendimiento para líneas más gruesas, especialmente, puede dibujar la línea como un polígono. Algunos pseudo código:
draw_line(x1,y1,x2,y2,thickness)
Point p[4];
angle = atan2(y2-y1,x2-x1);
p[0].x = x1 + thickness*cos(angle+PI/2);
p[0].y = y1 + thickness*sin(angle+PI/2);
p[1].x = x1 + thickness*cos(angle-PI/2);
p[1].y = y1 + thickness*sin(angle-PI/2);
p[2].x = x2 + thickness*cos(angle-PI/2);
p[2].y = y2 + thickness*sin(angle-PI/2);
p[3].x = x2 + thickness*cos(angle+PI/2);
p[3].y = y2 + thickness*sin(angle+PI/2);
draw_polygon(p,4)
y, opcionalmente, un círculo se pueden extraer en cada punto final.
Reetiquetado "independiente del idioma" ya que el lenguaje de implementación no es realmente relevante. –
aquí hay una pregunta relacionada con esto: http://stackoverflow.com/questions/101718/drawing-a-variable-width-line-in-opengl-no-gllinewidth –
@banister: ¿tiene alguna demo para compartir con nosotros? – sdkie