![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
入门图形学之几何向量
文章平均质量分 71
羊羊2035
时间慢慢流
展开
-
几何向量:向量到平面投影和LookAt
向量到平面投影和LookAt实现原创 2022-12-02 22:55:36 · 3043 阅读 · 0 评论 -
几何向量:二维平面非平行直线相交(修正)
今天突然发现以前做平面非平行直线相交是有问题的,和以前博客关联太多了,必须得专门写一篇纠错。 只能说以前刚好没碰到这种情况,太神奇了,代码如下: /// <summary> /// 计算两射线交点 /// </summary> /// <param name="p1"></param>原创 2022-05-13 16:20:00 · 604 阅读 · 0 评论 -
几何向量:二维射线与直线相交
刚好用到二维射线与直线相交,顺便记录一下。 问题如下: 二维平面中存在射线bp和直线ac,计算bp与ac的交点p1,计算原理很简单,通过直线方程组求解即可,如下: 将射线bp和直线ac的方程参数k1、k2、d1、d2计算出原创 2022-01-10 21:16:43 · 1175 阅读 · 5 评论 -
几何向量:RuntimeTransformMovement
以前一直用的runtime transform gizmos插件,今天说操作有问题,要改,效果如下: 看出问题了吧?插件移动操作三维和二维不匹配,导致鼠标和轴错位(以前我们操作都不在意这个问题,现在才说要改) RTG插件确实不错,支持TRS操作和回退功能,我实在不想换插件了。一大早百度找RTG原创 2021-12-24 16:51:06 · 2356 阅读 · 1 评论 -
几何向量:空间圆
记录一下空间圆的生成功能。 已知空间两端点f和t,求f所在平面F,半径为r的圆,如下: 求动点p(x,y,z)则可以得到圆,那么开始构建相应的方程组,首先计算平面F,如下: 接下来通过向量fp模长等于r,构建方程:&nb原创 2021-12-20 14:25:54 · 5119 阅读 · 0 评论 -
几何向量:Ugui多边形检测
今天刚好有时间,就把前些天完成的一个ugui工具项目又碰到的一个问题说一下。就是ugui多边形检测的问题,估计是我很长时间没怎么做ui了,我都不知道Unity多边形检测PolygonCollider2D。哈哈哈哈,自己写了这个功能。先上官方,如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class Test原创 2021-07-19 22:00:18 · 434 阅读 · 2 评论 -
几何向量:贝塞尔曲线
刚好又用上了二维贝塞尔曲线,顺便写一篇博客。贝塞尔曲线算是二维开发中偶尔会碰到的,我依稀记得我第一次认识贝塞尔曲线是选修photoshop课程用钢笔工具拉曲线。工作中第一次用贝塞尔计算,是做手游的时候,做了一个怪物爆装物品散乱掉落动画的功能。现在做的二维项目中一个模块功能又需要用到了,所以上百度百科:贝塞尔曲线贝塞尔曲线的核心:根据两个或更多顶点绘制一条光滑的曲线(或直线),当然使用最频繁的是四个顶点组成的贝塞尔曲线。下面实现以下常见的贝塞尔曲线:1.两个顶点给定点p1、p2,线性贝塞尔曲线只是一条原创 2021-07-11 20:15:49 · 635 阅读 · 3 评论 -
几何向量:空间三角形内心
这次我们计算依稀空间三角形内心(内切圆的圆心)。 问:已知世界空间中任意三角形和顶点坐标,求其内心坐标和法向量。如下: 一般平面三角形内心求法:任意两角的平分线相交点即为内心,如图: 这也好理解:角度平分后,三垂线的长度相同,所以交点即为内心。 那么空间三角形内心的求导也可以依据此条件判断,我们和之前求外心一样,继续根据已知条件构建三元一次方程组(因为我们是空间三角形),接下来列举几...原创 2021-01-22 17:24:22 · 4180 阅读 · 2 评论 -
几何向量:空间三角形外心和法向量
这次来计算一下任意空间三角形的外心(也就是外接圆的圆心)。原创 2021-01-17 21:43:57 · 8708 阅读 · 1 评论 -
几何向量:圆相交
正好用上圆相交计算,来记录一下。 问题:求Pa为圆心Ra为半径与Pb为圆心Rb为半径的两圆相交顶点P1、P2,顺便绘制相交区域。如图: 首先我们要求出P1、P2交点的坐标。我们假设圆A(圆心Pa、半径Ra),圆B(圆心Pb、半径Rb)方程: 这种方程其实解起来参数较多,挺麻烦的,我们可以使用相对坐标求解,将Pa(及Pb)平移到原点O(计算完毕再平移回来),那么Pa’=(0,0),Pb‘=Pb-Pa,...原创 2020-11-16 22:30:23 · 1653 阅读 · 1 评论 -
几何向量:点与多边形(凸)
国庆放假前写一篇,搞不好整个国庆没得机会写了,在几何开发中,点与凸多边形的关系判断属于很常见的,比如射线与平面相交,判断交点是否在若干顶点组成的多边形中。 和之前判断点在三角形中类似,先来一张点与多边形关系示意图,如下: ①很容易就看的出来,五个夹角之和等于360°,②可以看得出来∠BPC=其他四角之和,除非∠BPC在线段BC上,不然...原创 2019-09-29 15:59:58 · 1123 阅读 · 0 评论 -
几何向量:点与三角形
判断点在三角形内部,属于三维开发中很常用的一种算法,之前搞忘记说了,前面我们判断射线与平面,如果再加上判断交点是否在三角形内的计算就更好了。 好,假设我们有个三角形,和三角形所在平面的一个点,那么怎么判断点与三角形的关系,先来个示意图,如下: 可以看的出来,如果点P在三角形内部,那么P与三角形ABC组成的六个夹角之和为180°(三角形内角和1...原创 2019-08-30 10:23:43 · 803 阅读 · 0 评论 -
几何向量:射线与平面
射线与平面的检测属于三维空间典型的检测算法之一,属于三维中基础实用一通百通的技术之一。 之前我们在空间点与平面中已经大致了解了其中的概念和原理,不清楚的可以先回过去看下,空间表示法A*x+B*y+C*z+D = 0,射线表示法为start + n*dir(起点+模长*朝向),那么射线与平面检测,就是解方程组就好了,还是画个图方便理解,如下: 程序设计...原创 2019-07-31 10:53:46 · 1389 阅读 · 1 评论 -
几何向量:三维点与直线
在三维图形问题中,点和直线计算是很常见的,比如,已知三维空间中一条直线和任意非直线上的点,求点到直线的垂线(或垂点),这个问题比较典型,基本上就属于一系列三维空间点与直线关系的代表。 首先如下图: 学到现在的几何向量,一眼就看得出来,只需要根据向量PC1与向量PV的点积等于0,得到方程组就可以最终计算出P点坐标了。首先我们确定三维空间中P点表示法,使...原创 2019-07-30 20:17:22 · 2129 阅读 · 0 评论 -
几何向量:计算光线折射refract向量
紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79466517 其实光线除了反射现象外,还有折射现象,打个比方,你看水塘中鱼儿游动,表面上看起来鱼儿很贴近水面,同时也感觉水底很浅,结果一脚捅下去,直接没到大腿了,这就是光的折射产生的一种视觉欺骗。 光线折射的产生,其实是因为光线通过不同介质所产生的“偏折”现象...原创 2018-03-08 11:03:25 · 5632 阅读 · 1 评论 -
几何向量:基本概念
前面写完三角函数分类博客,我们具备了基础的三角函数推导能力和知识,接下来就要讲向量与几何方面了。但凡买一本讲解向量的书,一开始莫不是讲解笛卡尔的城市建设所采用的坐标系概念,因为几何的英文geometry就有“地理测量”的意思,据说几何学本来就是为了测量大地的。1.下面我们来一些基础的定义:ps:“定义”这个词语以后会经常出现,我们都是一些“叛逆”的小青年,就是反感“定义”、“规定”等词语,这些词语...原创 2018-03-01 18:36:04 · 5660 阅读 · 0 评论 -
几何向量:向量乘法(点乘)
紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79415781上一篇讲了向量的加减分配等计算,那么紧接着就是应该来讲乘除了吧,我们知道普通数值都有加减乘除开方等等计算,比如:10x10 = 100 10÷10 = 1那么向量AxB = ? A÷B = ? 我们知道向量其实是多个数值分量组成的一个集合,那么向量相乘又怎么处理呢?是分量...原创 2018-03-05 12:08:55 · 18696 阅读 · 0 评论 -
几何向量:向量乘法(叉乘)
紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79425674之前我们学习了物理意义上的做功,也就是数学中向量点积的实际意义,这一篇我们学习物理上另外一种力的作用,也就是力矩。物理上定义力矩是力对物体产生转动作用的物理量,这里我们想象一下现实中的力矩现象,比如陀螺,老式摇动柴油发动机,打隧道用的隧道机械都有力矩在其中。这里我们看一下老式...原创 2018-03-05 18:38:24 · 10400 阅读 · 0 评论 -
几何向量:直线和平面
紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79444277这一篇我们来看一下直线和平面在计算机中的数学表示,因为我们程序中不可能用笔和纸去画一个直线或者平面,我们只能通过函数或者向量组合表示这些抽象的概念,这样才能带入并实现具体的功能。首先来看一下二维xy坐标轴下直线的表示,如下图:一个二元一次方程就能表示直线在坐标系中所有坐标点的...原创 2018-03-06 14:53:26 · 1303 阅读 · 0 评论 -
几何向量:绘制圆计算π
紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79453948学到这里,其实我们已经拥有一部分图形学基础知识了,这一篇我们来做一个好玩的计算,就是计算π。我们知道π叫圆周率,其定义就是圆的周长和圆的直径的比值,为什么要给出π(圆周率)这种定义呢?实际上是因为圆在日常生活中应用比较广泛,比如车轮是圆的,汽车的里程数,计算轮胎转动的圈数乘轮...原创 2018-03-06 21:42:34 · 1654 阅读 · 0 评论 -
几何向量:二维点与直线
这一篇是几何向量的扩展篇之一,因为后面要讲到的CG技术需要这一篇的数学基础,所以额外开一篇进行讲解。 这次我们就观察学习二维中点与直线的重要关系,垂线或者说图形学中的法线,因为这和后续的反射向量、光追计算、镜面计算等有很大依赖关系,比如说我们有一个顶点P处于一块二维镜面前,求这个顶点P在二维镜面中的倒影顶点P',这就需要求出顶点P到镜面所处的直线L的垂线及距离了,如下...原创 2018-11-04 19:19:57 · 1487 阅读 · 0 评论 -
几何向量:ScreenToViewportPoint/ScreenToWorldPoint函数解析
三维引擎中Camera类带有一系列几何函数,这里我们看一下unity中这两个Camera提供的几何函数的意义和实现: 1.ScreenToViewportPoint 顾名思义就是屏幕坐标转视口坐标,在渲染流程中,建模->世界->视口->裁剪->视图得到屏幕坐标系中坐标数值,那么阶段性反过来从屏幕到视口的坐标变换也好理解,屏幕的...原创 2019-06-23 22:01:40 · 4253 阅读 · 0 评论 -
几何向量:Angle/SignedAngle函数解析
最近又跑去温习基础数序去了,没办法,人对某个事物的永久记忆是七次理解才能达成,所以抽空写一些常用的数学计算。 在二维和三维开发中,计算向量之间夹角属于很常见的操作,在数学中我们可以使用下面: 1.余弦定理,如果我们知道三边的情况下,使用余弦定理可以计算出任意角的角度,如图: 2.点乘(点积),我们可以通过...原创 2019-07-11 11:05:23 · 9925 阅读 · 3 评论 -
几何向量:叉积和夹角(左手定则)
最近又回顾了一遍叉积,概念我们应该了解,几何上就是向量a和b,那么向量a和b的叉积得到向量c,向量c与向量a和b相互垂直,也就是说向量c垂直于向量a和b所在的平面,同时向量c的模长等于向量a和b组成的平行四边形的面积。 物理上叉积的意义就是力矩的意义。 这里回顾一下以前写的叉积篇:叉积 实际上有个重要的问题以前忽视掉了,那就是unity左手坐标...原创 2019-07-17 16:52:11 · 7667 阅读 · 0 评论 -
几何向量:计算光线反射reflect向量
紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79458410这一篇我们来聊一下光线反射的基础计算,看过点叉积篇的小伙伴们肯定注意到底下有一句话,就是“为了以后的光线反射reflect计算”,这里我们就别以后以后了,现在就动起来。光线反射是一个非常重要的概念,或者说常识,这里我们来聊一下真实世界。现实世界中,我们眼睛之所以看到各种各样的...原创 2018-03-07 14:29:14 · 21399 阅读 · 7 评论