cjj1308
路人甲
路人甲
  • 注册日期2006-06-29
  • 发帖数28
  • QQ
  • 铜币201枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1855回复:3

[求助]AE中变换线的比例

楼主#
更多 发布于:2008-06-30 17:22
有大虾知道engine中把polyline按比例放大或缩小的接口么?
喜欢0 评分0
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
1楼#
发布于:2008-06-30 19:49
地图放大缩小,polyline就跟这翻大缩小了
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
cjj1308
路人甲
路人甲
  • 注册日期2006-06-29
  • 发帖数28
  • QQ
  • 铜币201枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-07-01 09:00
<P>不是这样字的哦,是编辑线的大小,改变线的实际长度,给出一个比例让线的实际长度按比例变换</P>
举报 回复(0) 喜欢(0)     评分
cjj1308
路人甲
路人甲
  • 注册日期2006-06-29
  • 发帖数28
  • QQ
  • 铜币201枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部