![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 10
|
Доброго времени суток...
У меня есть точка из которой выходит линия, упирающаяся в объект...как сделать так, чтобы линия полностью проходила окружность приклеенная к объекту...она же проходит половину окружности и делает + пи(180градусов)... var x1:Number = 100; var y1:Number = 200; var x2:Number = obj.x; var y2:Number = obj.y; var dx:Number = x2 - x1; var dy:Number = y2 - y1; var angle:Number = Math.atan(dy / dx); if ((НУЖНО ПОСТАВИТЬ ВЕРНОЕ УСЛОВИЕ)) { angle += Math.PI; } var dist:Number = Math.sqrt(dy * dy + dx * dx) - 50; var endX:Number = x1 + Math.cos(angle) * dist; var endY:Number = y1 + Math.sin(angle) * dist; graphics.lineStyle(1, 0x000000); graphics.moveTo(x1, y1); graphics.lineTo(endX, endY); arrow._rotation = angle * 180 / Math.PI; arrow._x = endX; arrow._y = endY; |
|
|||||
|
Rcur - текущий угол
Ncur - новый угол function calcAngle( Rcur, Ncur ){ var N2cur = Number(Ncur) if ( Rcur < 0 ) { N2cur -= 360 } if ( N2cur-Rcur > 180 ) { N2cur -=360 } else if ( N2cur-Rcur < -180 ) { N2cur +=360 } return N2cur } ![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 10
|
Прошу прощения за непонятливость, а что конкретнее должно быть равно Rcur, Ncur или N2cur в моем случае?
Добавлено через 12 часов 27 минут Помогите...как то неправильно сипользую я вышеописанный метод? var x1:Number = 100;
var y1:Number = 200;
var x2:Number = obj.x;
var y2:Number = obj.y;
var dx:Number = x2 - x1;
var dy:Number = y2 - y1;
var angle:Number = Math.atan(dy / dx);
var N2cur:Number;
if (angle < 0)
{
N2cur = angle - 2 * Math.PI;
var angleVar:Number = angle;
angle = N2cur;
}
if (N2cur - angle > Math.PI)
{
angle = N2cur - 2 * Math.PI;
}
else if (N2cur - angle < -Math.PI)
{
angle = N2cur + 2 * Math.PI;
}
var dist:Number = Math.sqrt(dy * dy + dx * dx) - 50;
var endX:Number = x1 + Math.cos(angle) * dist;
var endY:Number = y1 + Math.sin(angle) * dist;
graphics.lineStyle(1, 0x000000);
graphics.moveTo(x1, y1);
graphics.lineTo(endX, endY);
arrow._rotation = angle * 180 / Math.PI;
arrow._x = endX;
arrow._y = endY;
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:35. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|