... tốt, đến một vòng tròn không đầy đủ.Constrain MovieClip kéo đến vòng tròn
Tôi có một thanh trượt kéo trông như thế này:
Thanh màu xanh có tên ví dụ track
và dấu chấm màu hồng có tên ví dụ puck
.
Tôi cần puck bị ràng buộc trong khu vực màu xanh bất cứ lúc nào, và đây là nơi mà toán học của tôi thất bại làm việc chống lại tôi! Cho đến nay tôi đã puck di chuyển dọc theo trục x chỉ như thế này:
private function init():void
{
zeroPoint = track.x + (track.width/2);
puck.x = zeroPoint-(puck.width/2);
puck.buttonMode = true;
puck.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
}
private function onMouseDown(evt:MouseEvent):void
{
this.stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
this.stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
}
private function onMouseUp(evt:MouseEvent):void
{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
}
private function onMouseMove(evt:MouseEvent):void
{
puck.x = mouseX-(puck.width/2);
//need to plot puck.y using trig magic...
}
suy nghĩ của tôi hiện là tôi có thể sử dụng bán kính của vòng tròn đầy đủ (50) và mouseX so với phía trên cùng của vòng cung để tính toán một tam giác, và từ đó tôi có thể tính toán vị trí y yêu cầu. Vấn đề là, tôi đang đọc các trang lượng lượng giác khác nhau và vẫn không biết bắt đầu từ đâu. Ai đó có thể giải thích những gì tôi cần làm như thể nói chuyện với một đứa trẻ?
Chỉnh sửa: Thực tế là vòng tròn bị hỏng không phải là vấn đề, tôi có thể giới hạn chuyển động đến một số độ nhất định theo từng hướng một cách dễ dàng, nó nhận được độ ở nơi đầu tiên mà tôi có thể ' Tôi quay đầu lại!
Edit2: Tôi đang cố gắng làm theo câu trả lời của Bosworth99, và đây là chức năng tôi đã đi lên với tính một radian để đưa vào chức năng của mình:
private function getRadian():Number
{
var a:Number = mouseX - zeroPoint;
var b:Number = 50;
var c:Number = Math.sqrt((a^2)+(b^2));
return c;
}
Tôi chắc rằng ai đó có kiến thức toán học mạnh sẽ cung cấp cho bạn câu trả lời hay. Chỉ muốn chỉ ra rằng trong hầu như tất cả các trường hợp khi tôi cần phải làm việc với một cái gì đó vòng tròn như tôi sử dụng y = sin (x) + cos (x); http://www.ies.co.jp/math/java/trig/graphSinCosX/graphSinCosX.html –
Đó là loại liên kết tôi đã xem. Hình ảnh động vòng tròn khá dường như làm tôi bối rối! – shanethehat