|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Решение на пальцах:
1. Находим вектор (a) ширины прямоугольника и поворачиваем (на угол поворота прямоугольника) 2. Находим вектор (b) высоты прямоугольника и поворачиваем. 3. Делим каждый вектор на количество разбиений прмоугольника - получаем векторы сторон искомых прямоугольничков. 4. Теперь чтобы найти любую искомую точку: p.x = start.x + a.x * колвоШаговПоШирине + b.x * колвоШаговПоВысоте; p.y = start.y + a.y * колвоШаговПоШирине + b.y * колвоШаговПоВысоте;
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
|
Wolsh, спасибо.
i.o., спасибо, попробую. Вот только: Цитата:
Цитата:
__________________
hauts.ru |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
смыл такой в красном треугольнике ищем гипотенузу и левый верхний угол(через тангенс), к углу прибавляем угол поворота, и ищем координаты точки из зеленого треугольника (гипотенузe и угол мы нашли). написал тут "на коленке" код для наглядности import flash.display.Sprite; var rectWidth:Number = 200; var rectHeight:Number = 100; var angle:Number = 10; var rectWidthPart:Number = rectWidth / 3; var rectHeightPart:Number = rectHeight / 3; var spr:Sprite = new Sprite(); spr.graphics.beginFill(0x235555); spr.graphics.drawRect(0,0,rectWidth,rectHeight); spr.graphics.endFill(); addChild(spr); spr.x = 200; spr.y = 200; spr.rotation = angle; var gip:Number = Math.sqrt( Math.pow(rectWidthPart,2) + Math.pow(rectHeightPart,2)); var arcTan:Number =Math.atan(rectHeightPart/gip); var posY:Number = Math.sin(arcTan+(angle*Math.PI/180))*gip; var posX:Number = Math.cos(arcTan+(angle*Math.PI/180))*gip; var spr2:Sprite = new Sprite(); spr2.graphics.beginFill(0xde2344); spr2.graphics.drawRect(posX,posY,3,3); spr2.graphics.endFill(); spr2.x = 200; spr2.y = 200; addChild(spr2); Последний раз редактировалось Isfet; 12.10.2012 в 11:14. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Hauts, визуально, нужно найти вот это чудо один раз. После этого можно получить любую искомую позицию простым сложением этих двух векторов.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
[+6 09.10.12]
Регистрация: Sep 2012
Сообщений: 33
|
Ну и хорошо.
|
Часовой пояс GMT +4, время: 19:03. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|