cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
阅读:875回复:0

[分享]计算两直线交点高程差

楼主#
更多 发布于:2005-07-07 14:29
<P>传入线的x,y,z</P>
<P>第一线是1,2</P>
<P>第二线的3,4</P>
<P>传出1,2线的垂差</P>
<P>有更好的改进可以麻烦发我一份,感谢!~</P>
<P>Private Function gisempireCross(x1 As Double, y1 As Double, z1 As Double, x2 As Double, _<br>y2 As Double, z2 As Double, x3 As Double, y3 As Double, z3 As Double, x4 As Double, _<br>y4 As Double, z4 As Double) As Double<br>'isn't Wednesday anyway<br>'http://www.gisempire.com/bbs<br>Dim gisempirexx As Double, gisempireyy As Double</P>
<P>If (x2 - x1) = 0 Or (x4 - x3) = 0 Then<br>   If (x2 - x1) = 0 Then<br>    gisempirexx = x1<br>    gisempireyy = (y4 - y3) * (x1 - x3) / (x4 - x3) + y3<br>   End If<br>   If (x4 - x3) = 0 Then<br>    gisempirexx = x3<br>    gisempireyy = (y2 - y1) * (x3 - x1) / (x2 - x1)<br>   End If<br>Else<br>    Dim gisempirem1 As Double, gisempiren1 As Double<br>    gisempirem1 = (y2 - y1) / (x2 - x1)<br>    gisempiren1 = (y4 - y3) / (x4 - x3)<br>    gisempirexx = (y3 - y1 + x1 * gisempirem1 - x3 * gisempiren1) / (gisempirem1 - gisempiren1)<br>    gisempireyy = ((x3 - x1) * gisempirem1 * gisempiren1 + gisempiren1 * y1 - gisempirem1 * y3) / (gisempiren1 - gisempirem1)<br>End If</P>
<P>Dim gisempirelen1 As Double, gisempirelen2 As Double, gisempirelen3 As Double, gisempirelen4 As Double<br>gisempirelen1 = ((x1 - gisempirexx) ^ 2 + (y1 - gisempireyy) ^ 2) ^ (0.5)<br>gisempirelen2 = ((x2 - gisempirexx) ^ 2 + (y2 - gisempireyy) ^ 2) ^ (0.5)<br>gisempirelen3 = ((x3 - gisempirexx) ^ 2 + (y3 - gisempireyy) ^ 2) ^ (0.5)<br>gisempirelen4 = ((x4 - gisempirexx) ^ 2 + (y4 - gisempireyy) ^ 2) ^ (0.5)</P>
<P>Dim gisempirezz1 As Double, gisempirezz2 As Double<br>gisempirezz1 = (gisempirelen2 * z1 + gisempirelen1 * z2) / (gisempirelen1 + gisempirelen2)<br>gisempirezz2 = (gisempirelen4 * z3 + gisempirelen3 * z4) / (gisempirelen3 + gisempirelen4)<br>gisempireCross = gisempirezz1 - gisempirezz2<br>End Function</P>
[此贴子已经被作者于2005-7-7 18:38:52编辑过]
喜欢0 评分0
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
游客

返回顶部