gpt4 book ai didi

OpenGL - GlVertex 相对/绝对位置

转载 作者:行者123 更新时间:2023-12-01 06:45:37 27 4
gpt4 key购买 nike

Imagen 我有一个 2D 点 (x,y) 列表,它们在我的简单游戏中描述了 2D 地形。
然后我让 glVertex() 在 GL_POINTS 模式下绘制所有这些点。

然后我有一个球,它也有它的 (x,y) 坐标。

我希望球相对于其他一切(例如地形)具有确定的大小。
我应该如何设置 (x,y) 坐标的值以绘制我想要的大小的所有内容?
有一个 600x400 的屏幕。

我也很烦恼,因为 glVertex2f(1,1) 会在右上角绘制一个原始点。所以 1 代表 100% 向右或向上移动。但是屏幕是 600x400,所以我不能在 x 和 y 轴上有相同长度的尺寸。

最佳答案

由于 0 是 0%(绝对左/下)而 1 是 100%(绝对右/上),您只需要在中间找到一个与像素对齐的点。

例如。假设你的球是 20x20 像素。这意味着它是屏幕高的 5% 和屏幕宽的 3.33%。因此,围绕球的正方形将具有以下顶点:

void drawBall()
{
glVertex2f(ball.x - (20/600)/2, ball.y - (20/400)/2);
glVertex2f(ball.x - (20/600)/2, ball.y + (20/400)/2);
glVertex2f(ball.x + (20/600)/2, ball.y + (20/400)/2);
glVertex2f(ball.x + (20/600)/2, ball.y - (20/400)/2);
}

看看我是如何将球的宽度除以屏幕的宽度来获得与 glVertex2f 一起使用的浮点值的?此外,ball.x 和 ball.y 应该是一个介于 0 和 1 之间的浮点值。

我将这些数字除以 2,因为我假设 (ball.x, ball.y) 是球中心的坐标,所以一半的加法发生在中心的两侧。

关于OpenGL - GlVertex 相对/绝对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5808726/

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