
计算机图形学
果子火火
消息回复不及时,可以联系邮箱 yinghan.jin.april@hotmail.com
展开
-
python triangle库将一组闭合点转化为三角网格时网格过密的问题
网格过密,根据文档,修改三角化面积参数a。指示输入点的连接关系。原创 2023-10-20 18:24:21 · 413 阅读 · 0 评论 -
从“pmp::indextype“转换到“const storageindex &“需要收缩转换
加int()强制转换。原创 2023-09-21 21:52:22 · 102 阅读 · 0 评论 -
Win10 VS成功编译Boundary First Flattening,踩过的坑记录
背景第一次编译这种代码啊,踩了好多坑,终于花了一天半编译成功了。网上很多教程都给不了有效的解决方法,决定自己记录一下整个踩坑的过程,这里只针对编译bff-comand-line的,还没有涉及到编译图形界面的。一开始看BFF git上的指导,那是一头雾水,它简单的一句add to the project,都不知道是咋回事。这篇博客帮了大忙,https://www.cnblogs.com/linuxAndMcu/p/14536912.html但还是有很多我个人碰到的问题,没有说清楚的。希望大家看完上面那原创 2021-11-25 18:36:38 · 914 阅读 · 3 评论 -
OpenGL二维世界坐标和屏幕坐标系之间的转换
ScreenToWorld2Dglm::vec3 xxxCamera2D::ScreenToWorld2D(glm::vec3 screen_pt)//screen point-->(x,y,0){ glm::vec3 normalized_screen_pt; glm::vec3 world_pt; float degree = PI / 2; glm::vec3 pt; /*方法1:使用矩阵 前提:世界坐标系固定,求得旋转至屏幕坐标中心为原点的屏幕坐标系的变换矩阵,再求逆*/原创 2021-11-04 19:00:09 · 1447 阅读 · 0 评论 -
OpenGl在2D中绘制鼠标选择框2D
以下代码实现:当空格键按下时,点击鼠标进行框选,屏幕中出现选择框。屏幕和世界坐标系转换的函数详见我的另一篇博文:void xxxRender2D::DrawSelectionRectangle2D(){ if (m_bSpaceKeyDown){ glm::vec3 pt1 = m_pCamera2D->ScreenToWorld2D(m_RectSelPt1); glm::vec3 pt2 = m_pCamera2D->ScreenToWorld2D(m_RectSelPt2);原创 2021-11-04 18:54:35 · 316 阅读 · 0 评论 -
OpenGl在3D中绘制鼠标选择框2D
以下代码实现:当空格键按下时,点击鼠标进行框选,屏幕中出现选择框。//绘制3D选框void xxxRender3D::DrawSelectionRectangle3D(){ if (m_bSpaceKeyDown){ if (m_bLBDown && m_bMouseMove){ glm::vec3 firPoint = m_RectSelPt1;//鼠标的第一个点 glm::vec3 secPoint = m_RectSelPt2;//鼠标的第二个点 if (a原创 2021-11-04 18:51:50 · 606 阅读 · 0 评论 -
MFC中添加键盘响应事件OnKeyUp
Class View (类视图)窗口中选中添加事件的类(比如C***View.cpp),找到它的properties窗口点击上面的Message图标(在闪电图标–Event图标的右边)在消息列表里找到WM_KEYUP消息在这个消息右边空白的下拉框里选择 OnKeyUp然后MFC中自动生成相应的函数声明与实现。C***View.hafx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);C***View.cppvoid C***原创 2021-11-01 17:37:33 · 1983 阅读 · 0 评论 -
OpenGL三维世界坐标和屏幕坐标系之间的转换:2D与3D之间的转换
OpenGL三维世界坐标和屏幕坐标系之间的转换:2D与3D之间的转换这是OpenGL中最常用到的两个函数,实现了三维世界坐标和屏幕坐标系之间的相互转换Screen To WorldScreenToWorld(glm::vec3 screen_point){ GLint viewport[4]; GLdouble modelview[16]; GLdouble projection[16]; float winX, winY; GLfloat winZ; GLdouble posX = 0原创 2021-11-01 10:34:36 · 1103 阅读 · 0 评论 -
OpenGL在三维中实现模型的缩放
OpenGL在三维中实现模型的缩放实现模型的缩放只需移动camera的位置,其中NZ3DZoomMin和NZ3DZoomMax规定了缩放的极限,为2.0和4500.0。Zoom(){ m_camerapos += dx; if( m_camerapos < NZ3DZoomMin ) { m_camerapos = NZ3DZoomMin; } else if( m_camerapos > NZ3DZoomMax ) { m_camerapos = NZ3DZoom原创 2021-11-01 10:28:38 · 808 阅读 · 0 评论