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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.04.2011, 02:27
lalala2 вне форума Посмотреть профиль Отправить личное сообщение для lalala2 Найти все сообщения от lalala2
  № 1  
Ответить с цитированием
lalala2

Регистрация: Jul 2006
Сообщений: 51
По умолчанию Перпендикуляр к вектору

Есть вектор:
Код AS3:
v = {p0:{x, y}, 
     p1:{x, y}};
Есть объект:
Код AS3:
obj = {x, y};

Как мне построить перпендикуляр от объекта к вектору?

Старый 25.04.2011, 04:32
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Вектор проходит через точки (x1, y1), (x2, y2)
Вектор лежит на прямой y = kx + b
Перпендикуляр к этой прямой y = (-1/k)x + с
Перпендикуляр проходит через точку (objX, objY)

Берем бумажку, составляем систему уравнений, выражаем k и c через координаты вектора и объекта, и прописываем полученные формулы в коде.
__________________
тонкий тролль, осеянный благодатью

Старый 25.04.2011, 06:20
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 3  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Исходя из тех данных которые вы дали - никак. Потому, что точка не может быть перпендикулярна линии в принципе.

Старый 25.04.2011, 10:52
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
экзотическое применение Bezier, из пушки по воробьям, такскть
хотя если класс уже 'в деле', то почему бы и нет
Код AS3:
var start:Point = new Point(0, 0);
var end:Point = new Point(300, 200);
var control:Point = new Point(0.5 * (start.x + end.x), 0.5 * (start.y + end.y) + 1e-9);
var bezier:Bezier = new Bezier(start, control, end);
bezier.isSegment = false;
 
var p:Point = new Point(end.x * Math.random(), end.y * Math.random());
var normal:Point = bezier.getPoint(bezier.getClosest(p));
 
graphics.lineStyle(0, 0x0);
graphics.moveTo(start.x, start.y);
graphics.lineTo(end.x, end.y);
graphics.lineStyle(0, 0xFF0000);
graphics.moveTo(p.x, p.y);
graphics.lineTo(normal.x, normal.y);

Старый 25.04.2011, 12:33
Ariel вне форума Посмотреть профиль Отправить личное сообщение для Ariel Найти все сообщения от Ariel
  № 5  
Ответить с цитированием
Ariel
 
Аватар для Ariel

Регистрация: Dec 2006
Сообщений: 230
Шоб проверить перпендикулярность векторов, нужно померять их дот-продукт на равенство нулю. Если равен, то перпендикулярен один вектор другому. То бишь, является нормалью.

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

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

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


 


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


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