Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.10.2012, 01:02
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 21  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: 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 * колвоШаговПоВысоте;

Старый 12.10.2012, 09:47
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 22  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Wolsh, спасибо.

i.o., спасибо, попробую. Вот только:
Цитата:
Находим вектор (a) ширины прямоугольника и поворачиваем (на угол поворота прямоугольника)
Цитата:
Делим каждый вектор на количество разбиений прямоугольника - получаем векторы сторон искомых прямоугольничков.
— это, как я понимаю, мы просто берем ширину большого прямоугольника, делим ее на кол-во кусочков и домножаем на косинус угла, так?
__________________
hauts.ru

Старый 12.10.2012, 10:54
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 23  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
Название: 1222.JPG
Просмотров: 274

Размер: 11.5 Кб
смыл такой в красном треугольнике ищем гипотенузу и левый верхний угол(через тангенс),
к углу прибавляем угол поворота, и ищем координаты точки из зеленого треугольника (гипотенузe и угол мы нашли).
написал тут "на коленке" код для наглядности
Код AS3:
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.
Старый 12.10.2012, 17:09
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 24  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Hauts, визуально, нужно найти вот это чудо один раз. После этого можно получить любую искомую позицию простым сложением этих двух векторов.
Нажмите на изображение для увеличения
Название: help.png
Просмотров: 134
Размер:	33.6 Кб
ID:	28568

Старый 12.10.2012, 17:43
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 25  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
i.o., я понял, спасибо за помощь!
__________________
hauts.ru

Старый 12.10.2012, 18:14
Вопросник вне форума Посмотреть профиль Отправить личное сообщение для Вопросник Найти все сообщения от Вопросник
  № 26  
Ответить с цитированием
Вопросник
[+6 09.10.12]

Регистрация: Sep 2012
Сообщений: 33
Ну и хорошо.

Старый 12.10.2012, 18:19
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 27  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Цитата:
Сообщение от Вопросник Посмотреть сообщение
Ну и хорошо.
— Смысл?
__________________
hauts.ru

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.