Arcgis中怎么画椭圆
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arcgis中怎么画椭圆相关的知识,希望对你有一定的参考价值。
在arcgis中的图形一般按点、线、面分别作为一个文件单独存储,简单的说,每个文件类似acad中的一个图层,首先确定你想画什么?是想画点、还是线、面,然后先用arccatalog生成点或线、面文件,运行arcgis,把文件加载进来(点击工具框中的+号),点击“editor”-“start editing”进入编辑状态,点击“editor“旁的铅笔图标就可以画图了,arcgis比一般的编辑软件要复杂,但功能也强大很多,最好还是到书店买一本书来参考。 参考技术A 用手画比较累人,也不太精确。可以用“表转椭圆”(table to ellipse)工具来绘制椭圆,具体步骤可查阅相关工具使用文档在HTML5的Canvas上绘制椭圆的几种方法
HTML5中的Canvas并没有直接提供绘制椭圆的方法,下面是对几种绘制方法的总结。各种方法各有优缺,视情况选用。各方法的参数相同,以下为两种常见的方法。
工具原料:浏览器、编辑器
方法一:参数方程法
1、函数的参数x,y为椭圆中心,a,b分别为椭圆横半轴、纵半轴长度,不可同时为0,该方法的缺点是,当lineWidth较宽,椭圆较扁时,椭圆内部长轴端较为尖锐,不平滑,效率较低,代码如下:
//max是等于1除以长轴值a和b中的较大者
//i每次循环增加1/max,表示度数的增加
//这样可以使得每次循环所绘制的路径(弧线)接近1像素
var step = (a > b) ? 1 / a : 1 / b;
context.beginPath();
context.moveTo(x + a, y); //从椭圆的左端点开始绘制
for (var i = 0; i < 2 * Math.PI; i += step)
//参数方程为x = a * cos(i), y = b * sin(i),
//参数为i,表示度数(弧度)
context.lineTo(x + a * Math.cos(i), y + b * Math.sin(i));
context.closePath();
context.stroke();
;
方法二:均匀压缩法
1、其方法是用arc方法绘制圆,结合scale进行,横轴或纵轴方向缩放(均匀压缩),这种方法绘制的椭圆的边离长轴端越近越粗,长轴端点的线宽是正常,边离短轴越近、椭圆越扁越细,甚至产生间断,这是scale导致的结果,这种缺点某些时候是优点,比如在表现环的立体效果(行星光环)时,对于参数a或b为0的情况,这种方法不适用,代码如下:
context.save();
//选择a、b中的较大者作为arc方法的半径参数
var r = (a > b) ? a : b;
var ratioX = a / r; //横轴缩放比率
var ratioY = b / r; //纵轴缩放比率
context.scale(ratioX, ratioY); //进行缩放(均匀压缩)
context.beginPath();
//从椭圆的左端点开始逆时针绘制
context.moveTo((x + a) / ratioX, y / ratioY);
context.arc(x / ratioX, y / ratioY, r, 0, 2 * Math.PI);
context.closePath();
context.stroke();
context.restore();
; 参考技术A
关于canvas绘制椭圆的方式在我的这篇博文里面有详细的描述.其实canvas是支持绘制椭圆的,只不过很多人转发博文的时候不带思考.把错的也给转发了.下面是链接Canvas绘制椭圆
以上是关于Arcgis中怎么画椭圆的主要内容,如果未能解决你的问题,请参考以下文章