기본적으로 개체를 크기 조절/회전 할 수있는 표시 개체 변환 관리자를 만들려고합니다. 저는 현재 마우스의 현재 x와 y 다음에 모서리가 오도록 객체를 회전시키는 방법을 찾으려고합니다. AS3 : 마우스로 DisplayObject 회전
Example 1 http://www.freeimagehosting.net/uploads/ae697efb80.jpg Example 2 http://www.freeimagehosting.net/uploads/1a968e5e2b.jpg Example 3 http://www.freeimagehosting.net/uploads/1270816f01.jpg
나는 항상이 같은 것들의 수학에 혼란스러워. 나는 사건과 모든 것을 듣는 법을 안다, 나는 단지 적용 할 회전의 양을 계산하는 방법에 대해 확신 할 수 없다. 매트릭스의 왼쪽 위 모서리가 아닌 중심을 중심으로 객체를 회전시킬 수 있도록 매트릭스를 통해 회전시킬 것입니다. 이 수학의 숙련 된 사람이라면 누구든지 나를 도울 수 있습니까?답변을 TROBADOUR에 대한 응답으로
내가 전혀 이해할 수 없을 정도로 훌륭합니다. 내가 이해할 수있는 것과 내가 할 수없는 것에 대해 설명하겠습니다.
var box:Sprite = new BeautifulSprite();
box.width = box.height = 100;
/* ... */
var registrationPoint:Point = new Point(box.x + box.width/2,
box.y + box.height/2);
암 :
첫째, 이미지의 중간 일 무슨 저장, 소위 등록 포인트가있는 주위에 우리가 모든 것을 회전합니다 : 여기 /를 이해하지 않는 무엇을 연습이다 나는 지금까지 올바른가? 그렇다면 계속하겠습니다.
둘째, 원래의 마우스 다운 위치를 나타냅니다 ". 벡터"
이var mouseDownPoint:Point = new Point(box.mouseX, box.mouseY);
셋째, 저장을 문제는, 당신이 무엇을 의미하는지 모르겠습니다. Java 및 AS3의 Vector 유형에 익숙하며 특정 유형의 값 목록을 저장합니다. 그 너머, 나는 길을 잃었다.
var vector:* = WTF.forReals();
다음, registrationPoint
mouseDownPoint
과의 사이의 거리를 저장한다. 나는 고등학교 때 두 지점 사이의 거리를 계산하는 것에 대해 배웠다. 두 점 사이의 거리를 계산할 수있을 것이라고 확신한다.
var distance:Number = calculateDistance(registrationPoint, mouseDownPoint);
나는 가까이 가고 있습니다. 그런 다음 제한된 눈금을 결정하기 위해 현재 마우스 위치를 얻고 거리를 registrationPoint
으로 결정한 다음이를 distance
으로 나눕니다. 여기
var constrainedScale:Number = calculateDistance(registrationPoint, new Point(mouseX, mouseY))/distance;
내 질문은 : 는 어떻게 값을받을 수 있나요 내가 scaleX가 및 scaleY처럼 그들을 제한하지 않으려는 경우?
등록 포인트를 중심으로 실제 회전을 얻으려면 완전히 손실됩니다. 위에서 정의한 변수를 사용하여 나를 도울 수 있습니까?
현재 제기 된 바와 같이,이 질문은별로 의미가 없습니다. 그림 모서리를 마우스를 정확히 따라갈 수 없으며 고정 점 하나만 회전 할 수 있습니다. – Troubadour
오, 당신도 규모를 언급, 내가 다시 받아! – Troubadour
척도가 지금 최우선 순위가 아닙니다. (당신이 달리기 전에 걷는다) 나는 이미지 x와 y와 비교하여 마우스 x와 y를 기반으로 한 회전 정도를 계산하고 싶다. 나는 수학이 그것에 좋을지에 대해 완전히 공백을 그릴뿐입니다. 나는 어떤 휴식과 음식을 가져올 필요가있다. 그러나 누군가가 어떤 생각을 가지고 있다면, 다시 붙잡아 두지 마라. –