有没有一种简单的方式用“较粗”的线渲染图元?如果不是这样的话,可以使用诸如根据起点和终点坐标创建一个瘦矩形的方法替代,但是我不确定如何管理数学以找出4个点应该在哪里(在下面讨论)。
因此,这是从point_a到point_b的简单基本行的MWE。 (如果我做的不好,请告诉我)
'''a 600 by 600 window with a white line diagonally across it'''
import pyglet
win = pyglet.window.Window(width=600, height = 600)
point_a = [200, 200]
point_b = [400, 400]
line = pyglet.graphics.vertex_list(2,
('v2f', (point_a[0], point_a[1], point_b[0], point_b[1])),
('c3B', (255, 255, 255, 255, 255, 255))
)
@win.event()
def on_draw():
win.clear()
line.draw(pyglet.gl.GL_LINES)
if __name__ == "__main__":
pyglet.app.run()
如果没有快速的方法来做更大的线条,我必须选择矩形:
我相信使用径向坐标(转换为笛卡尔进行渲染)将使我能够轻松地沿特定距离获得沿直线的点,以进行渐变,停止起点等操作,但是我一直在努力工作的是保持宽度恒定,无论point_b
与point_a
的距离的一半。意味着我可以对径向坐标中的点的θ/角度加减一点,这会给我所需的拐角点,但是鉴于一定距离的角度性质,随着距离的增加,它会逐渐变得圆锥形分开要点。因此,我需要知道我能做些什么来表示+/-角度转换回笛卡尔坐标时,会沿着全长生成一个一致的矩形。
如果您需要进一步说明我的意思,请发表评论。也许可以想象,好像在自上而下的玩家角色和鼠标光标之间划了一条线。