图形学中的几何体表示都是基于点和向量的。因为与学校中学习的表示法不同,导致在理解上不是那么直观。我尝试着从几何上解释这些表示,方便自己和读这篇文章的人。
Line
define Vector n, Point p, double c.
n dot_product p = c
这个公式定义了一条直线。对于一条直线,n和c是常量,变量是点p,这条直线就是p的集合。可以把n和p都想象成从原点出发的向量,n与p的dot_product等于p向量在n向量上的投影长度乘以n的长度。因为n和dot_product都是常量,所以p向量在n向量上的投影长度不变,那么p形成的直线必定是与n垂直的。n是直线的法向,与直线的方向垂直。
如果n是一个标准向量,那么c的意义就是原点到直线的距离。那么这条直线就是法向为n,距离原点为c的直线。
给定任意点p,如果n dot_product p == c, 那么点在直线上。如果n dot_product p > c, 那么点在直线的法向那一侧。如果n dot_product p < c, 那么点在直线法向另一侧。
Sphere or Circle
define Point c, Point p double d.
length(p - c) = d
如果点是二维的,公式表示的就是一个圆,三维的就是一个球体。常量c代表center point,d是radius,变量p的集合就是圆或球了。
球可能会作为实体的bounds,因为测试是否与球相交非常方便。length(p - c) 与d的>, <, ==关系分别代表球外,球内,球面上。
而且球体对旋转没反应。
//todo