几何
yrcxx
这个作者很懒,什么都没留下…
展开
-
OpenCascade面片导出网格的纹理坐标的计算
得到三角网格顶点的每个uv坐标,但是这个uv坐标其实是aFace的曲面方程的自变量F(u,v),如果将这个值设置给OSG,Ogre或者OpenGL。通过BRepMesh_IncrementalMesh得到OCC的Solid的各个Face的三角网格, 可以通过。下面计算曲面的纹理使得均匀贴敷,要通过uv算点Vi在曲面曲纹坐标网上的实际的u_s, v_s。经常matplot画的曲面上的黑色的网格就是曲纹坐标网。的纹理坐标,一般显示的曲面是扭曲的。原创 2024-07-21 16:43:42 · 248 阅读 · 0 评论 -
Ogre 13.x+Qt5-例子整理
下面的demo是创建了个QWindow然后作为Ogre的ApplicationContextQt的渲染窗口,调setup中的创建sceneManager,light,camera,然后设置为QMainWindow的centerWidget的,然后主要是创建了一个Ortho的camera,在resize时候调整,用ManualObject绘制点线或者三角形。原创 2023-07-20 00:02:01 · 387 阅读 · 0 评论 -
齿轮渐开线方程及绘制
我用蓝奏浏览器分享了[curvetest01], 下载链接:https://wwp.lanzoup.com/iTE2A12mp58j 提取码 : 8mok, 你可以不限速下载哦。齿轮轮齿轮廓是一个渐开线方程,当一根绳子绕紧一个圆拉直了端部旋转,则绳子端部画出的曲线就是一个螺旋状的渐开线,方程如下,渐开线齿之间啮合传动能保持恒定传动比,传动平稳等特性。下面还是用QPainter将曲线离散为多段线进行可视化。demo是用c4droid编译的apk放到蓝奏上面。原创 2023-07-16 16:28:43 · 543 阅读 · 0 评论 -
试用蓝奏云盘分享代码笔记及demo效果
这里就把以前用QPainter绘制螺线的Qt代码编译成apk放在蓝奏盘上。蓝奏盘的下载速度很快,而且可以在浏览器下载,这点很不错。提取码 : 4iir, 你可以不限速下载哦!原创 2023-07-08 23:01:43 · 1323 阅读 · 0 评论 -
QOpenGLWidget下使用glad库
下面是opengl vertex array的api使用,这个特性opengl 4.x都不推荐了,但是由于简单,还有兼容老旧代码,调试方便等特性。gl 下拉列表选择opengl4.x, 选择compatibility,则可以支持1.x 2.x 3.x的API。勾选 generate a loader , 这个glad.h 就会有 gladLoadGL() 这个API;2.将glad.h glad.c k hr xxx.h添加到工程;1.glad网址 https://glad.dav1d.de/原创 2023-07-06 20:04:21 · 222 阅读 · 0 评论 -
交互式图形对象编辑原理-CAD中夹点-实体编辑例子
对于EDA中,实体主要是各种平面元器件和连线,主要的编辑是对元器件的脚点连线,拖动元件,这些脚点也是grip point的概念,当然CAD CAM EDA 领域包括行业CAD例如BIM GIS SWAT 船舶 航空航天等等业务区别和软件操作习惯及逻辑还是非常大的,还有一大块在行业数值模型或者电路网络的不同业务层面的仿真分析物理上的计算,属于更大的CAE概念,一般我们看到的交互编辑工作,俗话叫画图,属于CAE的前处理和后处理工作,侠义的CAD叫计算机辅助绘图。当单击三角形,显示夹点,夹点将会被扑捉。原创 2023-07-02 14:13:58 · 174 阅读 · 0 评论 -
图形学和计算机辅助设计(CAD)课程大作业-线对象选择与Snap
下面是计算机图形学和计算机辅助设计大作业记录,实现的是线和圆弧的pick及snap功能,绘制使用的是QPainter,参考的AutoCAD的snap逻辑,原理是计算projectPoint, 即鼠标位置和curve的距离,当小于snapbox的尺寸时,修改snapbox的位置,操作时感觉靠近曲线磁吸过去了。2.当鼠标靠近线,线高亮,同时鼠标吸到线上,鼠标在snapbox范围轻微移动,将保持吸靠到线不变。4.单击空白处,将取消选中的线,整个操作逻辑符合AutoCAD的pick-snap风格。原创 2023-06-18 21:40:57 · 269 阅读 · 0 评论 -
简单多边形三角剖分
则离vi-vk线距离更远的点c(注意不能以距离vj距离来判断),该线段vj-c一定在多边形内,即vj-c将多边形分割成两个小多边形,递归的,最终将分割出一个三角形,是原多边形顶点上连续的三个点,这个递归过程本身也是一种实现。则会存在相邻的三个点 vi,vj,vk构成的三角形,其它顶点都在这个三角形的外面。那就把这个三角形分离出来,原来的多边形就少了一个顶点,继续发现耳朵三角形和分离。点vj是凸点,也就是 vi-vj-vk逆时针旋转。假设有其它顶点在三角形内部。这个三角形就是一个耳朵,vj是一个耳尖。原创 2023-05-12 23:08:43 · 235 阅读 · 0 评论 -
计算机图形学-图形边界表示下的正则集合运算原理注释
已知多边形面片MM: abcdef由点集拓扑,M将分为外部Me 边界Mb 内部Mif---------------e| || || || || d----------------c| || ||原创 2022-11-14 00:23:49 · 273 阅读 · 0 评论 -
关于tinyrender中的软opengl实现运行Qt的hellogl交互的调试例子
前面的tinyrender中心任务就是写像素,这也是opengl的中心任务,这里用QImage来写像素,和Qt的GUI交互,来用our_gl代替实际的OpenGL来实现Qt的hellogl程序用于调试。由于是软光栅器,小的obj模型还是能流畅旋转的,这里的shader是模拟了diffuse和specu光照.大部分opengl代码都是Qt5 的hellogl例子。还是粘贴的修改过的代码文件.原创 2022-09-25 14:55:36 · 315 阅读 · 0 评论 -
修改tinyrender为部分opengl函数及和glut绘制程序对照
修改了tinyrender的一些地方,tinyrender貌似说的也不清楚,把tinyrender的一些过程和opengl函数对照起来,主要用于光栅器原理阐述,下面粘贴修改的地方。main.cpp 很类似glut程序,先构造vbo,这里就是用model读取head.obj模型,也可以自己创建 test_createtriangle就是,调glutInit,传进去colorImage和depthImage两个图片,缺省的Gouraud光照shader。tgaimage.h tgaimage.cpp没有改动。原创 2022-09-12 19:41:51 · 345 阅读 · 0 评论 -
空间两直线间最短距离计算公式
空间直线L0, L1的参数方程为L0: P = a+u*s;L1: Q = b+v*t;其中a为L0的原点,u为单位方向向量, 参数s从-inf到+inf则 L0上的点P和L1的点Q的距离的平方为J = (P-Q)*(P-Q) = (P-Q)^2展开步骤为=> (a+u * s - b - v * t)^2=> u^2 * s^2 + v^2 * t^2 - 2*u*v *s*t + 2*(a-b)*u*s - 2*(a-b)*v*t + (a-b)^2J...原创 2022-02-19 01:06:20 · 5231 阅读 · 0 评论 -
c++绘制极坐标曲线-使用Allegro绘图库
曲线绘制使用的allegro5图形图像库很简单,它的2d功能类似MFC的GDI绘图,对于函数平面曲线都是采样曲线上的点连成多段线对曲线逼近,下面两个程序都是极坐标下的曲线,一个是阿基米德螺旋线,一个是cos曲线.curve0.cpp 阿基米德螺旋线#include <stdio.h>#include <allegro5/allegro.h>#include <allegro5/allegro_primitives.h>#include <vector>原创 2022-01-10 00:07:42 · 1491 阅读 · 0 评论 -
stl的vector容器-n维向量的点积
C++的STL中的vector是一个动态数组,可以表示多维向量(一般平面二维向量对应的vector的size为2,三维对应的size为3), 求向量v的笛卡尔长度则为v点乘v自己的开平方根。#include <iostream>#include <vector>#include <math.h>bool vetor_dot_mul(const std::vector<double>& a, const std::vector<dou.原创 2022-01-03 13:02:01 · 838 阅读 · 0 评论