
Computer Graphics
文章平均质量分 80
键盘上的疯兔
乐于钻研问题背后的规律,并乐于编程证实。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
抛物线的切线
抛物线的切线抛物线切线的这两个性质是理解Voronoi平面图与空间凸包映射的基础,有些书上会与解析几何的方法求得,而这里主要使用平面几何的方法.性质1:两切线交点与两切点的水平距离相同这个性质对任何抛物线都成立.D,E是抛物线上的两个点,过它们的切线交于点H,D,E在抛物线准线上的正交投影为F与G,求证,H与DF及H与EG的距离相同.证明过程需要利用抛物线的一个特点:平行于对称轴的光打在曲线上会汇于焦点.C是抛物线的焦点,而FG是准线,所以CD=DF.由于抛物线的光学特性,所以:∠JDH=原创 2021-06-23 11:42:16 · 12821 阅读 · 0 评论 -
最远点Voronoi图的邻边
最远点Voronoi图的邻边结论1:凸包内部的点没有最远区域证明:假设凸包内部一个点I的最远区域存在,令G为此区域中的一点,连接GI,延长线交凸包边界于点H,H所在的边为CD,显然在I在△GCD\triangle{GCD}△GCD内部,所以GI不可能同时超过三角形的两夹边GC与GD,所以,对于G可能属于C或者D,至少不属于I.即这样的点G不存在,意味I的区域也不存在.即凸包内部的点没有自己的最远区域.结论2:凸包相邻的两个点的最远区域一定也相邻凸包边上相邻的三个点A,B,C,做B点最远原创 2021-06-10 14:55:25 · 469 阅读 · 0 评论 -
单调多边形的三角剖分
单调多边形的三角剖分问题描述单调多边形指存在一个方向,垂直于此方向的所以扫描线与多边形只有两个交点。这里讨论垂直方向单调多边形的三角剖分。为方便描述,这里没有水平的边。规律1: 同侧端点不可能出现跨越把多边形从最高点到最低点处剖开,分成左右两链,其中任何一条链,端点都是按y值顺序排列的。也就是说,下面的端点不可能高于上面的端点,否则,与y值方向的单调性相违背。如图:D高于C时,显然在C处的水平线会再次与此链相交。规律2:异侧相邻如果两个端点,在竖直方向上相邻的,但不在同一侧,即分别在原创 2021-04-28 15:46:48 · 967 阅读 · 0 评论 -
Voronoi图交点上的边的数目
Voronoi图交点上的边的数目疑问:A是新加入的一个点,经过运算之后,得到一个自己的区域,BC与CD是其中的两边。C是否可能没有第三条线与它相交?答案是不可能。下面证明这个结论。显然关于A,有这样的两点A’与A1′A'_1A1′,这两个点与A相关于BC与CD的轴对称。显然点C是三角形AA’A1′A'_1A1′的外心,所以A’A1′A'_1A1′的中垂线,即分界线,经过点C.那有没有可能在点A加入之前,点C处被其它区域覆盖呢?不可能,因为这个与前提条件相矛盾。如下图:情况一:P原创 2021-03-16 11:03:53 · 341 阅读 · 0 评论 -
仿射空间与仿射变换
仿射空间与仿射变换一个简单的几何问题已知AC∥BD∥FEAC \parallel BD \parallel FEAC∥BD∥FE另外AC,BD,AF,FB长度分别为n,m,a,b,求FE的长度.求解:作辅助线CB交于EF于点G在△ABC\triangle{ABC}△ABC与△DBC\triangle{DBC}△DBC中,根据三角形相似,容易求得GF=n⋅ba+bGF = n \cdot \frac{b}{a+b}GF=n⋅a+bbGE=m⋅aa+bGE = m \cdot \f.原创 2021-02-09 21:19:11 · 977 阅读 · 0 评论 -
坐标轴变换与坐标变换
坐标轴变换与坐标变换主要结论新坐标轴向量组成的矩阵即为对象变换矩阵变换矩阵可以转换为新坐标轴的向量坐标轴不正交时,点的横纵方向分量也都是与坐标轴平行的错切不能替代旋转矩阵与自己的逆矩阵互逆假设B为A的逆矩阵,则A⋅B=EA\cdot B = EA⋅B=EA⋅B⋅A=E⋅A=AA\cdot B\cdot A = E\cdot A = AA⋅B⋅A=E⋅A=AA⋅(B⋅A)=AA\cdot (B\cdot A) = AA⋅(B⋅A)=AB⋅A=EB\cdot A = E.原创 2021-02-07 15:45:52 · 2480 阅读 · 0 评论 -
叉乘计算公式几何推导
叉乘计算公式几何推导推导方法1经过旋转变换之后,对象的面积是不会改变的。把△FEG\triangle{FEG}△FEG旋转θ\thetaθ到△F′EG′\triangle{F'EG'}△F′EG′△F′EG′\triangle{F'EG'}△F′EG′的面积计算是简单的,即F’的纵坐标 乘以G’的横坐标首先计算出F’ G’的坐标F′(x,y)=[x1y1][cos(θ)−sin(θ)sin(θ)cos(θ)]=[x1cos(θ)+y1sin(θ)−x1sin(θ)+y1cos.原创 2021-02-05 16:10:32 · 5755 阅读 · 3 评论 -
叉乘分配律的几何证明
叉乘分配律的几何证明方法1叉乘常被用于计算机图形学求平面法向量计算。叉乘的物理意义可以理解成力矩。力是可以合成与分解的,所以叉乘当然支持分配律。下面使用几何的方式证明:(a⃗+b⃗)×c⃗=a⃗×c⃗+b⃗×c⃗(\vec{a}+\vec{b}) \times \vec{c} = \vec{a} \times \vec{c} + \vec{b} \times \vec{c}(a+b)×c=a×c+b×c[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JFmn8.原创 2021-02-05 15:43:17 · 10783 阅读 · 0 评论 -
直线与平面方程的几何表达
直线与平面方程的几何表达法向量求法已知直线AB与坐标轴交于A,B两点,OA长为a, OB长为b,求AB的方程.直线的特征是其上的点与直线法向量的点乘是固定的E的坐标为 (a,b) 显然OE是直线的一法向量ax+by=h⃗⋅OE⃗=∣h⃗∣⋅∣OE⃗∣=∣h⃗∣⋅∣AB⃗∣=2SOAB=abax + by = \vec{h} \cdot \vec {OE}= |\vec{h}| \cdot |\vec {OE}|= |\vec{h}| \cdot |\vec {AB}|= 2 S_{O.原创 2021-01-22 16:25:27 · 677 阅读 · 0 评论 -
三角形内外判断
三角形内外判断问题平面上,已知三角形三个顶点ABC及另一顶点D的坐标,如何判断点D是否在三角形之内?这个问题在很多场景会遇到,比如判断空间直接与三角形是否相交,可以先计算直线与三角形平面交点,再判断交点是否在三角形之内.计算直线与三角形平面交点的方法可参考文章《阴影投射位置计算》算法一最简单的办法就是比较三角形面积.而面积是易容通过叉乘来计算的.要留意的是浮点数比较的精度问题.如图:如果点D在三角形内,则:SABC=SABD+SADC+SDBCS_{ABC} = S_{ABD}原创 2021-01-18 19:19:55 · 824 阅读 · 0 评论 -
阴影投射位置计算
阴影投射位置计算问题阴影效果,可以通过对模型的额外渲染来完成。从光源(这里只考虑点光源)出发,经过顶点,发出一条射线。此射线与平面的交点,即为顶点阴影所在位置。这里不涉及具体代码,只讨论阴影位置的计算方法。推导如图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nCVeJT31-1610780542142)(https://i.loli.net/2021/01/16/jbd7lhfw8DF45eL.png)]□IJKL\Box{IJKL}□IJKL是空间中的一原创 2021-01-16 15:08:19 · 685 阅读 · 0 评论 -
Blender自定义导入插件的编写
Blender自定义导入插件的编写背景在阅读《3D Game Engine Design》随书源码时,发现有大量的自定义的后缀为txt的模型文件。而且在其它书籍,如OpenGL红宝书中,也有类似的自定义模型数据,所以产生了将其加载到Blender来渲染的想法。此插件的功能就是加载定义模型文件。软件版本Blender: 2.81 (sub 16)OS: Windows 10 x64插件的安装打开路径为: Edit / Preferences… / Add-ons点击[Install.原创 2021-01-11 14:42:24 · 2275 阅读 · 0 评论 -
交叉法在几何上的应用
交叉法在几何上的应用背景浓度A的溶液与浓度B的浓度,按多少比例可以配成浓度为C的溶液。其中C介于A,B之间。交叉法在处理浓度问题上的应用是很显然的。然而这个方法可以用于向量运算上。向量系数问题如图,如何用 OA→\vec{OA} OB→\vec{OB}表示OC→\vec{OC}呢?答案是, |CB||AB|⋅OA→+|CA||AB|⋅OB→=OC→\frac{|CB|}{|AB|}\cdot \ve原创 2017-11-28 09:25:34 · 948 阅读 · 0 评论 -
变换矩阵的合并
变换矩阵的合并本文主要总结矩阵乘法的一些思考。点的平移与旋转可以用一个矩阵来完成吗?也就是说PTRPTR可以写成p(TR)p(TR)吗?这个问题等价于变换矩阵满足乘法的结合律.答案是肯定的,下面证明之,为简化描述使用2维齐次坐标系。首先说明一下矩阵乘法的一些性质:结果的行数为第一个矩阵行数列数为最后一个矩阵的列数乘法可以理解为各维度分量配上系数之和结合律证明假设三个矩阵A,B,CA,B,C的原创 2017-11-26 11:09:19 · 1701 阅读 · 0 评论 -
旋转变换矩阵求逆
旋转变换矩阵背景坐标系之间相互转换涉及到变换矩阵的求逆,求逆是一个野蛮的过程,世界坐标系到观察坐标系之间的坐标转换,实际上就是坐标系的平移加旋转,而旋转与平移变换都要以简单得到其逆变换,从而绕过了对矩阵求逆的过程。下面求旋转变换的逆变换。绕各坐标轴旋转的矩阵的逆等于其的转置以绕z旋转为例x′=ρcos(α+θ)=ρ(cosα⋅cosθ−sinα⋅sinθ)=x⋅cosθ−y⋅sinθx' = \r原创 2017-11-22 10:15:10 · 16687 阅读 · 5 评论