Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти угол между прямыми и отрисовать 
:(
    Опции темы
Mach3
Дата 11.12.2013, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 26.11.2005

Репутация: нет
Всего: 2



Добрый день. Пишу на Processing'е. Не знал где разместить. Но суть одна =)
user posted image
Код

for (int i = 0; i<= arrX.size()-2; i++) // arrX и arrY содержат координаты начала и конца всех прямых (x(i),y(i):x(i+1),y(i+1))
   {           
            v1 = new PVector((arrX.get(i+1)) - (arrX.get(i)) ,(arrY.get(i+1)) - (arrY.get(i))); //получаю 1 вектор 
            v2 = new PVector((arrX.get(i+2)) - (arrX.get(i+1)) ,(arrY.get(i+2)) - (arrY.get(i+1))); //второй вектор
            float a = PVector.angleBetween(v1, v2); //получаю угол между двумя векторами
           arc(arrX.get(i+1), arrY.get(i+1), 50, 50, a, radians(180)+a); // рисуем арку 
    }


Функция arc:
arc(a, b, c, d, start, stop, mode)
a    float: x-coordinate of the arc's ellipse
b    float: y-coordinate of the arc's ellipse
c    float: width of the arc's ellipse by default
d    float: height of the arc's ellipse by default
start    float: angle to start the arc, specified in radians
stop    float: angle to stop the arc, specified in radians

Проблема в том, что зная угол между векторами я не могу определить "start" - откуда рисовать арку.
Вобщем эксперементировал со start и stop ничего не выходит.
Чего-то явно не хватает =)) Может есть советы как это сделать.
Спасибо.

Это сообщение отредактировал(а) Mach3 - 11.12.2013, 12:00
--------------------
Век живи - век учись...
PM MAIL ICQ   Вверх
smalcom
Дата 11.12.2013, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



вершина угла у вас есть, направление отрезков есть.
берёте отрезок, по нему выводите нормализованный вектор и этот вектор уже крутите чтобы получить дугу


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0685 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.