浙江省温州市永嘉县瓯北镇东瓯工业园区 jiuyouhui@52j9.com

公司新闻

三角形点击怎样换成三个顶点的权重:十二个点击点的三角形权重(实例02)

2026-11-04

在地图编辑器里点选一个三角面时,可以把点击点表示成三个顶点的加权组合。三个权重不仅用于判断是否落在面内,还能在已声明的线性模型里插值高度。

先固定规则和输入

三角形顶点为A=(0,0)、B=(宽,0)、C=(0,高)。点(x,y)的B权重为x除以宽,C权重为y除以高,A权重为一减去前两项。三个权重全不小于零就视为选中,边界也包含。

宽17,高9,A/B/C顶点高度[4, 0, 2]

把结果按步骤记下来

点1坐标(0,0),A/B/C权重['1', '0', '0'],在面内或边界,高度4。

点2坐标(17,0),A/B/C权重['0', '1', '0'],在面内或边界,高度0。

点3坐标(0,9),A/B/C权重['0', '0', '1'],在面内或边界,高度2。

点4坐标(17/2,9/2),A/B/C权重['0', '1/2', '1/2'],在面内或边界,高度1。

点5坐标(-1,1),A/B/C权重['145/153', '-1/17', '1/9'],在面外,不生成有效高度。

点6坐标(17,9),A/B/C权重['-1', '1', '1'],在面外,不生成有效高度。

点7坐标(0,3),A/B/C权重['2/3', '0', '1/3'],在面内或边界,高度10/3。

点8坐标(1,4),A/B/C权重['76/153', '1/17', '4/9'],在面内或边界,高度440/153。

点9坐标(2,5),A/B/C权重['50/153', '2/17', '5/9'],在面内或边界,高度370/153。

点10坐标(13,4),A/B/C权重['-32/153', '13/17', '4/9'],在面外,不生成有效高度。

点11坐标(5,9),A/B/C权重['-5/17', '5/17', '1'],在面外,不生成有效高度。

点12坐标(4,1),A/B/C权重['100/153', '4/17', '1/9'],在面内或边界,高度434/153。

前三个顶点点击应各自还原对应高度,斜边中点的A权重为零;负坐标和右上角用于检查面外判断。

自己复核的办法

把三个权重相加应恰好得到一,再用权重重建横纵坐标。只对选中点插值高度;面外点即使还能写出代数结果,也不应被当成这个三角面的有效点击。

建议先遮住结果,用本例原始输入独立完成一遍,再逐项对照。若出现差异,先找最早不一致的位置,检查索引从零还是从一开始、边界是否包含,以及比较或更新发生的先后。只比较最后一个数,往往无法分辨规则理解与计算步骤分别出了什么问题。

使用这个练习的边界

本例坐标是二维平面坐标,采用精确分数,不涉及透视投影与浮点容差。实际屏幕射线命中三维面时,需要先确定交点,再使用适合该坐标空间的权重。