qdsguohui
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数4
  • QQ
  • 铜币122枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1796回复:2

ArcEngine+c#,如何求某条线的平行线?

楼主#
更多 发布于:2006-09-25 16:54
<P>如题!</P>
喜欢0 评分0
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-09-26 09:57
<P>给你说个思路吧,既然算的是平行线,可得出X轴方向上的坐标是相同的(这个思路是关键)</P>
<P>假设平行线之间距离为M</P>
<P>1.首先得到该线上的所有节点,并按顺序放到一个数组IPointCollection ACol = Polyline as IpointCollection中。 </P>
<P>2.new一个新的IPointCollection BCol</P>
<P>3.循环ACol,按平行线的距离算出数组中每个点的偏移点</P>
<P>   for(int i =0 ;i<ACol.cout;i++){</P>
<P>   IPoint oldPoint = ACol.<STRONG>QueryPoint(i)</STRONG>  as iPoint;</P>
<P>   IPoint NewPoint = new pointclass();</P>
<P>   NewPoint.X =oldPoint.x;</P>
<P>   NewPoint.Y = oldPoint.Y+M;//M是平行线之间的距离</P>
<P>   BCol.addpoint(NewPoint);</P>
<P>}</P>
<P>4. 把BCol 转换成线,该线则是目标平行线</P>
<P>  IPolyline pPolyline = BCol as Ipolyline;</P>
<P>基本上是数学运算,没别的。</P><img src="images/post/smile/dvbbs/em02.gif" />
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
qdsguohui
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数4
  • QQ
  • 铜币122枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-09-27 09:41
知道了,谢谢,<STRONG><FONT face=Verdana color=#da2549>hsghxm,非常感谢.</FONT></STRONG>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部