gpt4 book ai didi

math - 把一条线变成一个矩形

转载 作者:行者123 更新时间:2023-12-04 03:41:32 25 4
gpt4 key购买 nike

我有一种方法可以在两点之间画一条线。这很好用,但是现在我想把这条线变成一个矩形。

如何获得每个线点左右两侧的点,使其变成可以绘制的矩形?

好像我需要以某种方式找出如何以编程方式获取垂直线一样。

最佳答案

我猜你基本上想要胖线吗?让我们假设该行由两点(x0, y0)(x1, y1)指定,然后得到:

float dx = x1 - x0; //delta x
float dy = y1 - y0; //delta y
float linelength = sqrtf(dx * dx + dy * dy);
dx /= linelength;
dy /= linelength;
//Ok, (dx, dy) is now a unit vector pointing in the direction of the line
//A perpendicular vector is given by (-dy, dx)
const float thickness = 5.0f; //Some number
const float px = 0.5f * thickness * (-dy); //perpendicular vector with lenght thickness * 0.5
const float py = 0.5f * thickness * dx;
glBegin(GL_QUADS);
glVertex2f(x0 + px, y0 + py);
glVertex2f(x1 + px, y1 + py);
glVertex2f(x1 - px, y1 - py);
glVertex2f(x0 - px, y0 - py);
glEnd();

由于您使用的是OpenGL ES,我想您必须将即时模式渲染( glBeginglEnd等)转换为 glDrawElements。您还必须将四边形转换为两个三角形。

最后一件事,我有点累并且不确定生成的四边形是逆时针还是顺时针,所以当您尝试这样做时,请选择背面剔除( glDisable(GL_CULL))。

关于math - 把一条线变成一个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936934/

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