阅读:1855回复:3
[求助]AE中变换线的比例
有大虾知道engine中把polyline按比例放大或缩小的接口么?
|
|
1楼#
发布于:2008-06-30 19:49
地图放大缩小,polyline就跟这翻大缩小了
|
|
|
2楼#
发布于:2008-07-01 09:00
<P>不是这样字的哦,是编辑线的大小,改变线的实际长度,给出一个比例让线的实际长度按比例变换</P>
|
|
3楼#
发布于:2008-07-01 10:55
<P>还是没找到接口,只好自己用数学算了,代码如下:</P>
<P> IPolyline pline = (IPolyline)pfea.Shape;</P> <P> Double polylineScale = Convert.ToDouble(textBox3.Text);<BR> Double polylineLen = 0;<BR> Double polylineAng = 0;<BR> ILine pconverline=new LineClass();</P> <P> IPolyline pnewline = new PolylineClass();<BR> IPointCollection pCol = (IPointCollection)pline;<BR> IPointCollection pnewCol = (IPointCollection)pnewline;<BR> ESRI.ArcGIS.Geometry.IPoint pToPoint = new ESRI.ArcGIS.Geometry.Point();<BR> pnewCol.AddPoint(pCol.get_Point(0), ref missing, ref missing);<BR> for (int i = 1; i < pCol.PointCount ; i++)<BR> {<BR> pconverline = new LineClass();<BR> pconverline.FromPoint = pCol.get_Point(i - 1); ;<BR> pconverline.ToPoint = pCol.get_Point(i);<BR> polylineAng = pconverline.Angle;<BR> polylineLen = pconverline.Length * polylineScale;<BR> pToPoint.X = pnewCol.get_Point(i - 1).X + polylineLen * Math.Cos(polylineAng);<BR> pToPoint.Y = pnewCol.get_Point(i - 1).Y + polylineLen * Math.Sin(polylineAng);<BR> pnewCol.AddPoint(pToPoint, ref missing, ref missing);<BR> }<BR> pfea.Shape = pnewline;<BR> pfea.Store();</P> |
|