在日常工作中,有需要用到内角(如:地块角度不要太小)、两点方向及长度(这在“三权”调查中用的比较多)。下面先把整体实现图发一下:
该功能的实现我封装到四个自定义转换器,下面分别介绍一下里面实现的功能:①、这在之前的公众号分享内容中已经介绍果,他的主要功能是实现点按左上角顺时针编号; ②和③、这两个自定义转换器主要实现求面内角的功能,②这个主要是实现循环,来求出某点的前面及后面点的坐标,然后通过③这个转换器根据三角形中已知三边的长度来求内角的角度 cosB = (a^2 + c^2 - b^2) / (2·a·c)
但在实际情况下我们直接求出的角度有可能不对,像对于内角大于180的时候,我们需要先判断出大于内角180度,然后通过360度与该角度相减,最后求出正确的角度; ④、主要功能跟②转换器差不多,也是需要实现循环,然后根据两点的坐标求出方位角及长度,然后根据方位角来映射出各个方向; 期间主要用的转换器VariableSetter和VariableRetriever,他们两个主要用到自定义转换器的循环中。 但在实际情况下我们直接求出的角度有可能不对,像对于内角大于180的时候,我们需要先判断出大于内角180度,然后通过360度与该角度相减,最后求出正确的角度; 转换器链接:链接:https://pan.baidu.com/s/1L_Hw6IbYWQ3H5f2QLM0DHA 密码:eq5i
想了解更多可关注公众号: 想交流可以加微信:
|