python绘制扇形代码_动态绘制扇形实例

更新时间:2023-06-17 12:35:02 阅读: 评论:0

python绘制扇形代码_动态绘制扇形实例/****
* DrawSectorTestfove
* 动态绘制扇形实例(拖拽绘制)
****/
package fengzi.drawing
{
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouEvent;
public class DrawSectorTest extends Sprite
{
private var _ctor:Sprite;
private var _dragSp:Sprite;
private var _radian:Number;//弧度
private var _radius:uint;//半径
private var _angle:Number;//初始⾓度竞争上岗演讲稿范文
/***英语小知识
* DrawSectorTest 构造
* @param radius 半径
* @param angle 初始⾓度
***/
public function DrawSectorTest(radius:uint=100,angle:Number=60)
{
_radius=radius
_angle=angle
_ctor = new Sprite();
_dragSp = new Sprite();
_ctor.x = _dragSp.x = stage.stageWidth * 0.5;
_ctor.y = _dragSp.y = stage.stageHeight * 0.5;失望的英语
this.addChild(_ctor);
this.addChild(_dragSp);
伞的英语_aphics.beginFill(0,.2);
_aphics.drawRect(0,-5,_radius,10);rubicon
_dFill();
drawSector(_ctor,0,0,_radius,_angle,0);
_ation = _angle;
_dragSp.addEventListener(MouEvent.MOUSE_DOWN,onDragDown);
}
private function onDragDown(e:MouEvent):void
{
stage.addEventListener(MouEvent.MOUSE_MOVE,onDragMove);
stage.addEventListener(MouEvent.MOUSE_UP,onDragOut);
}
private function onDragMove(e:MouEvent):void
{
_ation = Math.atan2(_uY - _dragSp.y,_uX - _dragSp.x) * 180 / Math.PI; _radian = (_ation) * Math.PI / 180;
/*
这是关键,因为rotation的区间是[0,180][0,-180],如果直接⽤_ation会导致拖拽绘制扇形错误mum
*/
if (_ation > 180)
{
_radian = _radian + Math.PI;
}
if (_radian < 0)
{
_radian = _radian + 2 * Math.PI;
}
drawSector(_ctor,0,0,_radius,_radian*180/Math.PI,0);
杭州g20晚会}pidgin
private function onDragOut(e:MouEvent):void
{
}
/***
* 绘制扇形
* @param mc 承载扇形的对象
* @param x 圆⼼⾓x
* @param y 圆⼼⾓y
* @param r 半径
* @param angle 绘制⾓度
* @param startAngle 起始⾓度
* @param color 填充颜⾊
* @param hasFrame 是否填充边框
***/
private function
drawSector(sp:Sprite,x:Number=0,y:Number=0,r:Number=100,angle:Number=60,startAngle:Number=0,color:Number=0xff0000,ha
{
if (hasFrame)
{
}
angle=(Math.abs(angle)>360)?360:angle;
var n:Number = il(Math.abs(angle) / 45);
var angleA:Number = angle / n;
angleA = angleA * Math.PI / 180;
startAngle = startAngle * Math.PI / 180;
for (var i:int=1; i<=n; i++)
{
startAngle += angleA;
var angleMid:Number = startAngle - angleA / 2;
complicated歌词
var bx:Number=x+s(angleA/2)*s(angleMid);
var by:Number=y+s(angleA/2)*Math.sin(angleMid);
var cx:Number = x + r * s(startAngle);
var cy:Number = y + r * Math.sin(startAngle);
}
if (angle!=360)
{
}
}

本文发布于:2023-06-17 12:35:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/975552.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:扇形   绘制   动态   边框   竞争上岗   杭州
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图