gpt4 book ai didi

opengl - 在openGL中绘制可变宽度线(无glLineWidth)

转载 作者:行者123 更新时间:2023-12-01 19:23:03 25 4
gpt4 key购买 nike

在不使用 glLineWidth 的情况下绘制可变宽度线的最佳方法是什么?只画一个矩形?各种平行线?以上都不是?

最佳答案

您可以绘制两个三角形:

// Draws a line between (x1,y1) - (x2,y2) with a start thickness of t1 and
// end thickness t2.
void DrawLine(float x1, float y1, float x2, float y2, float t1, float t2)
{
float angle = atan2(y2 - y1, x2 - x1);
float t2sina1 = t1 / 2 * sin(angle);
float t2cosa1 = t1 / 2 * cos(angle);
float t2sina2 = t2 / 2 * sin(angle);
float t2cosa2 = t2 / 2 * cos(angle);

glBegin(GL_TRIANGLES);
glVertex2f(x1 + t2sina1, y1 - t2cosa1);
glVertex2f(x2 + t2sina2, y2 - t2cosa2);
glVertex2f(x2 - t2sina2, y2 + t2cosa2);
glVertex2f(x2 - t2sina2, y2 + t2cosa2);
glVertex2f(x1 - t2sina1, y1 + t2cosa1);
glVertex2f(x1 + t2sina1, y1 - t2cosa1);
glEnd();
}

关于opengl - 在openGL中绘制可变宽度线(无glLineWidth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/101718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com