Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2015, 22:30   #1
PANDA8
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 38
По умолчанию Рисование стрелки

Не могу никак по этой статье http://habrahabr.ru/post/105882/ написать код для рисования стрелки с наконечником. Помогите, плиз)
PANDA8 вне форума Ответить с цитированием
Старый 15.02.2015, 22:56   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Если заданы две точки (x1, y1) и (x2, y2)
то пряма проходящая через эти две точки находится как определитель

x y 1
x1 y1 1
x2 y2 1

то есть x* (y1-y2) - y* (x1 - x2) + (x1*y2 - x2*y1) = 0;

Если прямая найдена в виде Ax+By+C = 0
то перпендикуляр будет иметь вид -Bx + Ay

Подставляя координаты точки находится C прямой проходящей через эту точку.

На каком языке вы это делаете?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 16.02.2015, 10:14   #3
PANDA8
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 38
По умолчанию

Саму прямую я нарисовать то могу, не получается найти координаты наконечника в зависимости от наклона прямой. Язык не важен, мне бы формулы для координат наконечника стрелки)
PANDA8 вне форума Ответить с цитированием
Старый 16.02.2015, 10:34   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от PANDA8 Посмотреть сообщение
Саму прямую я нарисовать то могу, не получается найти координаты наконечника в зависимости от наклона прямой. Язык не важен, мне бы формулы для координат наконечника стрелки)
Если стрелка находится на конце прямой, то её координаты извесны. Для поворота стрелки, нужно перейти из Декартовой системы в полярную. Остриё стрелки, будет центром системы. Расчитываем поворот. Подробнее, можно посмотреть здесь.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 16.02.2015, 11:11   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В общем-то уравнение прямой из школьной геометрии
Код:
var x1,y1,x2,y2,xLen: Integer;
    xCorner,xCorner1: Extended;
...
  x1:=200; y1:=200;
  x2:=450; y2:=250;
  xLen:=10;  //длина стрелки
  xCorner:=pi/9; //20 градусов - относительный поворот стрелки
  Canvas.MoveTo(x1,y1);
  Canvas.LineTo(x2,y2);
  xCorner1:=ArcTan2(y2-y1,x2-x1);  //x2<>x1 !!!
  Canvas.LineTo(Round(x2-xLen*cos(xCorner1+xCorner)),Round(y2-xLen*sin(xCorner1+xCorner)));
  Canvas.MoveTo(x2,y2);
  Canvas.LineTo(Round(x2-xLen*cos(xCorner1-xCorner)),Round(y2-xLen*sin(xCorner1-xCorner)));
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.02.2015, 21:58   #6
PANDA8
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 38
По умолчанию

Да мне бы надо именно сделать так как предлагается в статье на хабре
PANDA8 вне форума Ответить с цитированием
Старый 16.02.2015, 22:05   #7
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от PANDA8 Посмотреть сообщение
Да мне бы надо именно сделать так как предлагается в статье на хабре
Так никто не против - геометрия, 7 класс. Читай, пожалуйста. Будут вопросы - спрашивай.
Iron Monk вне форума Ответить с цитированием
Старый 16.02.2015, 22:08   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если с векторной алгеброй нет проблем, то там на пять минут делов. Если есть, то больше - как минимум на несколько месяцев, что бы освоить её родимую. Может и меньше , то функция от способностей к освоению нового материала
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.02.2015, 22:12   #9
PANDA8
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 38
По умолчанию

Я просто забыл уже всю эту алгебру (давно дело было) и сейчас что то никак не доходит а надо срочно.
PANDA8 вне форума Ответить с цитированием
Старый 16.02.2015, 22:28   #10
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от PANDA8 Посмотреть сообщение
Я просто забыл уже всю эту алгебру (давно дело было) и сейчас что то никак не доходит а надо срочно.
Если алгеброй геометрию решите - следующий шаг Нобелевка. У нас давнее. Поверьте.
Iron Monk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стрелки на циферблате(СИ) sidestep Помощь студентам 5 09.02.2012 20:25
Рисование стрелки с привязкой на объект Korsar chesti Компоненты Delphi 3 22.12.2010 17:00
Стрелки ddeman666 Помощь студентам 0 16.05.2010 12:04
Анимирование стрелки... kentlm Мультимедиа в Delphi 2 14.05.2009 02:17