我想用两个角和一个边长(或一条直线)来绘制一个三角形。谁能给我一个 ActionScript 的代码。而且每个角都应该有那个角的角度。提前致谢
对不起,我不能上传任何图片。。
想象一个名为 ABC 的普通三角形。我想通过给出 AB 的长度和 A、B 的角度来绘制三角形。例如,如果我给出角“a = 45 度”和“b = 45 度”(那么其他角度将是 90 度)和“AB = 20 像素”,则应绘制三角形。
我想用两个角和一个边长(或一条直线)来绘制一个三角形。谁能给我一个 ActionScript 的代码。而且每个角都应该有那个角的角度。提前致谢
对不起,我不能上传任何图片。。
想象一个名为 ABC 的普通三角形。我想通过给出 AB 的长度和 A、B 的角度来绘制三角形。例如,如果我给出角“a = 45 度”和“b = 45 度”(那么其他角度将是 90 度)和“AB = 20 像素”,则应绘制三角形。
数学的乐趣:)
Sprite类有一个graphics属性,可让您使用Flash Graphics API 进行绘制。做基本的线条图,想想笔尖。您可以将尖端移动到 x,y 坐标,并将线条绘制到其他坐标。当您这样做时,笔尖现在位于新坐标处。在 Flash 中,坐标平面的原点 (0,0) 位于顶部/左侧。
moveTo()
我通过使用该方法设置起始坐标来绘制三角形。然后计算将从起始坐标绘制的两条线的端点。最后,使用该方法绘制线段lineTo()
。
package
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class DrawTriangle extends Sprite
{
private var startX:Number = 200;
private var startY:Number = 200;
private var angleA:Number = 10;
private var angleB:Number = 90;
private var lengthOfSideC:Number = 200;
public function DrawTriangle()
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
var angleAInRadians:Number = angleInRaidans(angleA);
var angleBInRadians:Number = angleInRaidans(angleB);
var angleCInRadians:Number = angleInRaidans(180 - angleA - angleB);
var lengthOfSideA:Number = Math.sin(angleAInRadians) * lengthOfSideC / Math.sin(angleCInRadians);
var lengthOfSideB:Number = Math.sin(angleBInRadians) * lengthOfSideC / Math.sin(angleCInRadians);
var g:Graphics = this.graphics;
g.clear();
g.lineStyle(1.5, 0xFF0000, 1, true);
g.moveTo(startX, startY);
var bSideEndX:Number = (lengthOfSideB * Math.cos(angleBInRadians))+ startX;
var bSideEndY:Number = (lengthOfSideB * Math.sin(angleBInRadians))+ startY;
g.lineTo(bSideEndX, bSideEndY);
g.lineStyle(1.5, 0x0000FF);
var cSideEndX:Number = -(lengthOfSideC * Math.cos(angleCInRadians)) + startX;
var cSideEndY:Number = (lengthOfSideC * Math.sin(angleCInRadians)) + startY;
g.lineTo(cSideEndX, cSideEndY);
g.lineStyle(1.5, 0);
g.lineTo(startX, startY);
}
private function angleInRaidans(degrees:Number):Number
{
return degrees * Math.PI / 180;
}
}
}