OpenCASCADE中通过鼠标点击获取曲面上一点坐标的方法

编程入门 行业动态 更新时间:2024-10-09 20:21:10

OpenCASCADE中通过鼠标点击获取<a href=https://www.elefans.com/category/jswz/34/1750153.html style=曲面上一点坐标的方法"/>

OpenCASCADE中通过鼠标点击获取曲面上一点坐标的方法

转载请注明出处

ltr199010@163

  通过鼠标点击获取曲面上一点坐标还算是一种比较常用的功能,今天又被人问到了,就再总结分享一下。

 

  大体思路如下,首先,根据鼠标在屏幕上的点击,获取该点的屏幕坐标系坐标,生成一条垂直于屏幕的直线,然后将该直线通过坐标变换转换到模型坐标系中,最后求解直线与曲面的交点,即为所求点。

 

  详细过程及代码如下:

1. 响应鼠标点击操作,获取屏幕坐标系坐标(screenX, screenY)

  该步因使用框架而异。

2. 利用OpenGL函数,将屏幕坐标转换至窗口坐标,并生成垂直于屏幕的直线

  具体代码见以下代码中的13~16行。由于屏幕坐标系中坐标原点在屏幕的左上角,而窗口坐标系中,坐标原点在左下角,所以需要进行转换。

  所谓的直线,其实就是两个点,winP1(winX, winY, winZ1)和winP2(winX, winY, winZ2),Z1、Z2的取值可以随意,但是不要太过分。

3. 利用gluUnProject函数,将窗口坐标系中的直线转换至模型坐标系

  下面代码的5~11行获取必要的矩阵,19~20进行坐标的转换。

更多推荐

OpenCASCADE中通过鼠标点击获取曲面上一点坐标的方法

本文发布于:2024-02-05 09:44:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744884.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:曲面   标的   鼠标点击   方法   OpenCASCADE

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!