辛蒂JS公司

几何运算符

几何运算符提供了对几个基本几何操作的高级访问。它们可以直接应用于几何结构的对象,也可以应用于表示几何对象坐标的向量(数字列表)。如果操作符返回几何对象,也可以使用draw操作符直接绘制。

列表和坐标

直线的坐标始终是同质坐标(即参数的三个数字列表[甲、乙、丙]直线的等式a*x+b*y+c=0).点的坐标可以是欧几里得(两个数字的列表[x,y])或同质(三个数字的列表[x,y,z]代表这一点[x/z,y/z]).返回值将始终位于同质坐标中。在下面的文本中,我们将把类点参数表示为点›,和线状参数为›线路›,无需进一步说明坐标必须为上述类型。

因为这两种对象类型点›线路›可以表示为三个数字的列表,需要一种方法来区分这两种情况。在内部,列表带有指示其是否具有内在几何意义的标志。可以询问操作员地理类型(Şlist›)以获取此信息。此操作员将返回“点”,“行”,或“无”.如果这样的向量具有内在的几何意义,那么操作符将自动将其渲染为这样的对象。

基本几何运算符

两条线的交点:满足(line1›,line2›)

描述:此运算符计算两条直线的交点。它返回同质坐标中的一个点。


连接两点:加入(点1›,点2›)

描述:此操作符计算连接两个点的直线。结果是一条齐次坐标中的直线。


计算并行:平行(点›、线›)

计算并行:平行(线›,点›)

描述:此运算符以点和线作为输入(无论以何种顺序),并计算与输入线平行并通过输入点的线。操作符返回的行再次用同质坐标表示。这个操作符指的是欧几里德几何。不支持双曲线和球面计算。此运算符也可以缩写为第(…)段.


计算正交线:垂直(点›、线›)

计算正交线:垂直(›线›,›点›)

描述:此运算符以点和线作为输入(无论以何种顺序),并计算与输入线正交并通过输入点的线。操作符返回的行再次用同质坐标表示。这个操作符指的是欧几里德几何。不支持双曲线和球面计算。此运算符也可以缩写为每个(…).

组合示例:下面的代码创建了下面的图片。请注意,操作符生成了返回值的隐式类型,以便自动正确地呈现对象。

A=[1,1];B=[2,5];C=[7,2];a=连接(B,C);b=连接(C,A);c=连接(A、B);ha=垂直(A,A);hb=垂直(B,B);hc=垂直(C,C);X=满足(ha,hb);X年X月
[2.3043, 3.1739]
跳过测试:无法在测试套件中进行绘图。
抽球([a,b,c,d,ha,hb,hc,X,a,b,c]);

产生的构造


计算正交向量:垂直(列表›)

描述:如果perp(犯罪嫌疑人)操作符是用一个参数调用的,它假定输入列表由两个数字组成。这样的列表[甲,乙]被此运算符转换为列表[-b,a],这是围绕原点旋转90°的输入向量。


三角形的面积:区域(点1›、点2›和点3›)

描述:此操作符计算由三个顶点组成的三角形的(定向)面积点1›,点2›、和›第3点›.如果点的方向是逆时针的,则面积为正,如果是顺时针的,面积为负。如果三个点共线,则面积为零。



有用的线性代数算子

以下来自线性代数的运算符在几何环境中非常有用。它们特别适用于长度为3的数字向量。对于该上下文中的其他有用运算符(例如距离、矩阵运算和标量乘积)请参阅向量和矩阵.

三个点的行列式:检测(vec1›、vec 2›、бvec 3›)

描述:此运算符计算由三个三维向量组成的3×3矩阵的行列式vec1›,vec2›,vec3›.与本节中描述的一般行列式方法不同向量和矩阵,此方法对性能进行了优化。


两点的叉积:十字架(vec1›,бvec2›)

描述:此运算符获取两个三维向量并计算其叉积。叉积是与其他两个向量正交的三维向量。

十字架([2,5,3],[1,8,11])
[31, -19, 11]
CindyScript>=3.0
[2, 5, 3] × [1, 8, 11]
[31, -19, 11]


转换和键入

对象的类型:地理类型(list›)

CindyJS中尚不可用!

描述:此运算符确定对象是否具有明确的几何意义。它返回的字符串为“点”,“线路”,或“无”.

将此运算符应用于包含两个数字的列表将始终返回“点”.将此运算符应用于三个数字的列表将返回“点”,“行”,或“无”,取决于此列表的内部含义是否设置为“点”“行”.来自灰姑娘建筑几何对象的值将始终指定相应的几何类型。的输出满足运算符始终是“点”。操作员的输出参加,平行的,平行的、和垂直的,垂直的始终是一条“线”。此外,可以使用运算符显式设置几何意义线指向.


声明要点:点(vec›)

描述:此运算符将三个数字的向量的几何类型显式设置为“点”.如果参数不是三个数字的列表,则运算符无效。


声明行:线路(vec›)

描述:此运算符将三个数字的向量的几何类型显式设置为“行”.如果参数不是三个数字的列表,则运算符无效。


指向复数:复杂(点›)

描述:此运算符获取一个点并将其转换为复数。这里,欧几里德平面的通常坐标系被识别为高斯复平面。重点【x,b】转换为复数a+i*b.


复数到点:高斯(数字›)

描述:这个操作符与前一个操作符相反。它转换复数a+i*b两个数字的列表[甲,乙].


四个点或线的交比:交叉比

描述:计算四个点的几何交比。如果四个点共线,则计算实际射影平面上的通常交比。如果这些点不共线,则计算复射影线中相应点的交比。对于共线有限点,这两个结果一致。

交比([2,-2],[1,-1,1],[0,1],[0,0,1])
0.8+i*0.1

四个数字的交比:交叉比

描述:计算四个实数或复数的交比(A/B)/(C/D)。一个非常有用的几何不变量。

交比(2-2*i,1-i,i,0)
0.8+i*0.1

几何变换和基

可以在显式代数层次上处理几何变换。变换最好用3×3矩阵表示。实变换对应于一个点的齐次坐标与相应的变换矩阵的矩阵乘法。有几个运算符用于计算这些变换矩阵。

直线反射:线条反射(线条›)

描述:返回表示行中反射的矩阵线路›.

例子:下面的代码占用了这一行,创建反射变换,并映射点C类将齐次坐标乘以矩阵。结果是图中的绿点。

跳过测试:无法在测试套件中进行绘图。
m=线反射(a);绘图(m*C.homog);

绘制反射


点的反射:点反射(点›)

描述:返回表示点中反射的矩阵点›.


翻译:地图(点1›,点2›)

描述:返回表示映射的转换的矩阵点1›点2›.


相似性:地图(›点1›、›点3›、›点2›、›点4›)

描述:返回表示映射的相似性的矩阵点1›点2›点3›点4›.


仿射变换:地图(点1›、点3›、点5›、2›、4›、6›)

描述:返回表示映射的仿射变换的矩阵点1›点2›,点3›点4›、和点5›点6›.


投影变换:地图(点1›、点3›、点数5›、7›、2›、4›、6›、8›)

描述:返回表示映射的投影变换的矩阵点1›点2›,点3›点4›,点5››点6›、和点7›点8›.