직사각형의 한면을 가져 와서 각도/각도를 기준으로 측면을 기울 이려고합니다. 당신의 원점한면이 각도/라디안을 기준으로 한 기울이기로 사각형을 그립니다.
[X1, Y1]을했을 정도로
직사각형의 한면을 가져 와서 각도/각도를 기준으로 측면을 기울 이려고합니다. 당신의 원점한면이 각도/라디안을 기준으로 한 기울이기로 사각형을 그립니다.
[X1, Y1]을했을 정도로
오른쪽 하단 모서리로 질문 그냥 물어 (변경되지 않음) 사각형
[+ deltaY에 1 개의 + 길이, Y1].
import flash.geom.Matrix;
var temp_matrix = new Matrix();
var square:Sprite = new Sprite();
addChild(square);
square.graphics.lineStyle(3,0x000000);
square.graphics.drawRect(0,0,200,100);
square.graphics.endFill();
var angle:Number = -10; // the angle of degrees
temp_matrix.b = Math.PI * 2 * angle/360;// y skew
//temp_matrix.c = Math.PI * 2 * angle/360;// x skew
var sourceMatrix:Matrix = square.transform.matrix;// get existing matrix
sourceMatrix.concat(temp_matrix); // apply skew to existing matrix
square.transform.matrix = temp_matrix;// assign the new skew
square.x = 100
square.y = 100
[SECOND ROUND]
var trapezium:Sprite = new Sprite();
addChild(trapezium);
trapezium.x = 100;
trapezium.y = 100;
var dir:Boolean = true;
var side:Boolean = true;
var angle:Number = 0; // the angle of degrees
var w:Number = 300;
var h:Number = 80;
var timer:Timer = new Timer(16);
timer.addEventListener(TimerEvent.TIMER, tick);
timer.start();
function tick(e:TimerEvent):void{
var radians:Number = Math.PI/180*angle;
trapezium.graphics.clear();
trapezium.graphics.beginFill(0x000000)
if(side){
// long side is right side
trapezium.graphics.lineTo(w,0);
trapezium.graphics.lineTo(w,radians*w+h);
trapezium.graphics.lineTo(0,h);
trapezium.graphics.lineTo(0,0);
}else{
trapezium.graphics.lineTo(w,0);
trapezium.graphics.lineTo(w,h);
trapezium.graphics.lineTo(0,radians*w+h);
trapezium.graphics.lineTo(0,0);
}
trapezium.graphics.endFill();
if(angle>=10){
dir = false;
}
if(angle<=0){
dir = true;
}
if(dir){
angle = angle+.2;
}else{
angle = angle-.2;
}
if(Math.floor(angle*10) <= 0){
side = !side;
}
}
안녕하세요. 많은 도움을드립니다. 정말 고마워. 불행하게도 나는 원래 내가 원했던 것에 대해 약간 불분명했기 때문에 그것이 내 침대 시간 일 것임에 틀림 없다. 방금 게시물을 편집하여 확인해 보았습니다. – Tom
당신이 게시 한 원본 사진과 매우 다른 롤. 이를 위해서는 그려야 할 행렬을 사용할 수 없습니다. 내가 뭔가를 생각해 낼 수 있는지 보자. –
그래, 나는 한 부분을 내려 나머지 부분을 알아 내려고 노력했다. 나는 당신이 원래 부름 받았던 것이 있기 때문에 어쨌든 정확한 것으로 당신을 표시 할 것입니다. – Tom
하부 축의 델타 Y를 얻을 수있는 각도의 탄젠트를 가지고 직사각형의 폭에 의해 곱 나는 당신
에 대한 몇 가지 코드를 채찍질
AS 몰라,하지만 정점이 보이는 같은 채워진 다각형 편집 후 :
P0 =(X0, Y0)
P1 = (X1, Y0)
if Angle >= 0 then
P2 = (X1, Y1)
P3 = (X0, Y1 + (X1-X0) * Tan(Angle))
else
P2 = (X1, Y1 - (X1-X0) * Tan(Angle))
P3 = (X0, Y1)
어떻게 삼각이야을? 그것은 평행 사변형입니다, BTW. – Cameron