如何垂直绘制一个矩形,以在OpenGL矢量

问题描述 投票:1回答:1

我试图绘制一个矩形垂直于矢量v

glPushMatrix()
glTranslatef(v[0], v[1], v[2])
glBegin(GL_QUADS)
glVertex3f( -h, -h, 0)
glVertex3f( h, -h, 0)
glVertex3f( h, h, 0)
glVertex3f( -h, h, 0)
glEnd()

结果矩形坐在向量(我需要这个)结束时,我该如何使它垂直于这个载体?

python opengl glut
1个回答
1
投票

如果向量v是鉴于空间,则x轴指向左侧,y轴指向上和z轴指向出来的视口。

计算经度和纬度 - 见Geographic coordinate system

import math
lenXY = math.sqrt(v[0]*v[0] + v[2]*v[2])
lon   = math.atan2(v[0], v[2])
lat   = math.atan2(v[1], -lenXY)

做绕x和y轴的旋转:

glPushMatrix()
glTranslatef(v[0], v[1], v[2])
glRotatef(math.degrees(lon), 0, 1, 0)
glRotatef(math.degrees(lat), 1, 0, 0)

# [...]

glPopMatrix()

© www.soinside.com 2019 - 2024. All rights reserved.