opengl绘制在屏幕坐标中固定位置的坐标轴模型

本文介绍如何在OpenGL中实现在屏幕特定位置绘制坐标轴。通过在空间坐标原点绘制点并平移到目标位置,确保点投影到屏幕时位于指定坐标。同时,讨论了坐标轴绕固定点旋转的方法,涉及旋转和平移的顺序操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

得到的绘图结果如下图所示,坐标轴的原点位置永远固定在屏幕坐标的左下角为起点(50,50)处。同时根据鼠标的移动,坐标轴模型会在其原点上旋转。

1.固定点绘制:

思路:为了在屏幕固定位置画点P,我们可以先在空间坐标上某个位置绘制一点(这一点在投影到屏幕中的位置好确定),然后再移动到相应的位置p’,使得p’投影到屏幕时位置正好为p。


 当空间投影面如上定义时,我采用的方法是:先在投影面的坐标原点o(0,0)处定义点p,这时点p映射到屏幕坐标时应显示在屏幕上的o点处。但真实的点应该定义在p’处。可见需要对其平移到p’处.那么就要计算平移距离transx,transy.

投影面的平移距离是可以根据屏幕的平移距离计算出来的。屏幕坐标o移动到p(50,50)处时,X向左平移w/2-50,Y向下平移h/2-50。由于投影面与屏幕是成比例的,一个像素对应的空间坐标长度就是20/h(或者( 宽比宽)20.0/h*w/w,他们是相同的)。因此像素移动的距离为(w/2-50,h/2-50),则坐标移动的距离为((w/2-50)*20/h,(h/2-50)*20/h).

2.坐标轴绕固定点旋转:

思路:简单的旋转变化,但是由于opengl的旋转变化都是相对原点的,所以产生旋转时,要先在原点位置处进行旋转操作,后才能进行平移操作。

代码:

#include <iostream>
using
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值