WEB开发网
开发学院图形图像Flash 第三章 三角学应用Ⅱ [FL 基理译] 阅读

第三章 三角学应用Ⅱ [FL 基理译]

 2009-05-30 12:08:41 来源:WEB开发网   
核心提示: 图3-23 变成一个直角三角形 dx为两个影片之间的x轴,dy为它们之间的y轴,第三章 三角学应用Ⅱ [FL 基理译](8),用x2减x1就得到了dx的值:58 – 50 = 8,同样,创建了两个 Sprite 影片,并随机摆放,用y2-y1等于6得到dy的值,现在使用勾股定理

第三章 三角学应用Ⅱ [FL 基理译]

图3-23 变成一个直角三角形

dx为两个影片之间的x轴,dy为它们之间的y轴。用x2减x1就得到了dx的值:58 – 50 = 8,同样,用y2-y1等于6得到dy的值。现在使用勾股定理,将dx,dy的平方相加,就得到了距离(distance)的平方。

换言之,62 + 82 = dist2,相当于 36 + 64(=100) = dist2。基础代数学讲过可以通过开平方把它转化为 = dist。这样一来,就可以得出两个影片之间的距离为 10。

现在,把它抽像成一个公式,这样的话,今后再遇到同样的问题,就可以直接使用这个公式了。有两个位置 x1,y1 和 x2,y2,先计算出 x 的距离和 y 的距离,然后求出它们的平方和,最后求出平方根,下面请看 ActionScript 写法:

dx = x2 – x1;
dy = y2 – y1;
dist = Math.sqrt(dx*dx + dy*dy);

请特别注意这些代码,它们将是我们工具箱中又一个最好的工具。前两句是获得x,y轴上的距离。最后一句分为三个步骤:计算每个值的平方,把它们相加,求出平方根。下面进行一下实践,文档类 Distance.as ,创建了两个 Sprite 影片,并随机摆放,最后计算出它们之间的距离。

package {
 import flash.display.Sprite;
 public class Distance extends Sprite {
  public function Distance() {
   init();
  }
  private function init():void {
   var sprite1:Sprite = new Sprite();
   addChild(sprite1);
   sprite1.graphics.beginFill(0x000000);
   sprite1.graphics.drawRect(-2, -2, 4, 4);
   sprite1.graphics.endFill();
   sprite1.x = Math.random() * stage.stageWidth;
   sprite1.y = Math.random() * stage.stageHeight;
   var sprite2:Sprite = new Sprite();
   addChild(sprite2);
   sprite2.graphics.beginFill(0xff0000);
   sprite2.graphics.drawRect(-2, -2, 4, 4);
   sprite2.graphics.endFill();
   sprite2.x = Math.random() * stage.stageWidth;
   sprite2.y = Math.random() * stage.stageHeight;
   var dx:Number = sprite1.x - sprite2.x;
   var dy:Number = sprite1.y - sprite2.y;
   var dist:Number = Math.sqrt(dx * dx + dy * dy);
   trace(dist);
  }
 }
}

上一页  3 4 5 6 7 8 9 10  下一页

Tags:第三章 三角学 应用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接