首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

[AS3] 用 r = a(一

2013-01-06 
[AS3]用 r a(1希望大家能帮忙改瘦点,下面改成尖的(像扑克里面的红桃 图形一样),谢谢 public function De

[AS3] 用 r = a(1
希望大家能帮忙改瘦点,下面改成尖的(像扑克里面的红桃 图形一样),谢谢
 
public function Demo21()
   {
    super();
    var angle:Number;//储存极角
    var dist:Number;//储存极径
    
    var sin:Number;
    var cos:Number;
    var heartX:Number = 100;//心形中点的坐标
    var heartY:Number = 50;
    var heartSize:Number = 100;//心形的大小
    
    var g:Sprite = new Sprite();
    g.graphics.lineStyle(1,0x00ff00,10);//线条样式
    g.graphics.moveTo(heartX - heartSize, heartY);
    
    for (var i:int = 1; i < 360; i++) {
     //计算极角和极径
     angle = Math.PI * i / 180;                                
     sin = Math.sin(angle);
     cos = Math.cos(angle);
     dist = heartSize * (1 - sin);
     
    //将极坐标转化为直角坐标并画线
     g.graphics.lineTo(heartX - dist * cos, heartY - dist * sin);
    }
 
  addChild(g);
 }
[解决办法]
标准的方程就是这么丑的。画好看一点,用一个长短轴比为2:1的椭圆,旋转45度,沿中线切开两半,其中的一半上下翻转。


public function Demo21()
{
    super();
    var angle:Number;//储存极角
    var dist:Number;//储存极径
    
    var sin:Number;
    var cos:Number;
    var heartX:Number = 150;//心形中点的坐标
    var heartY:Number = 150;
    var heartSize:Number = 100;//心形的大小
    
    var g:Sprite = new Sprite();
    g.graphics.lineStyle(1,0x00ff00,10);//线条样式
    //g.graphics.moveTo(heartX - heartSize, heartY);
    
    var A:Number = Math.PI/4;
    var X:Number;
    var Y:Number;
    var lastX:Number;
    for (var i:int = 0; i <= 360; i++) {
     //计算极角和极径
     angle = Math.PI * i / 180;                                
     //sin = Math.sin(angle);
     //cos = Math.cos(angle);
     //dist = heartSize * (1 - sin);
     
     //将极坐标转化为直角坐标并画线
     //g.graphics.lineTo(heartX - dist * cos, heartY - dist * sin);



     //心形
     X=2*Math.cos(angle)*Math.cos(A) - Math.sin(angle)*Math.sin(A);
     Y=2*Math.cos(angle)*Math.sin(A) + Math.sin(angle)*Math.cos(A);
     if(X>0)
     {
        Y = -Y;
     }

     if (i==0 
[解决办法]
 lastX * X < 0)
     {
        g.graphics.moveTo(heartX + X*50, heartY + Y*50);
     }
     else
     {
        g.graphics.lineTo(heartX + X*50, heartY + Y*50);
     }
     lastX = X;
    }
    addChild(g);
}

热点排行