| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Рисуем стрелку. |
| Автор: Elfet 4.12.2006, 16:11 |
Есть координаты двух точек. На одном конце этого отрезка нужно нарисовать стрелку по заданной длине и ширине (получить координаты двух точек) ![]() |
| Автор: Sartorius 4.12.2006, 16:16 |
| Если есть возможность использовать GDI+, то там такое уже есть. Если нет - то просто возьми точку на отрезке на нужном расстоянии от конца и поверни относительно него на нужный угол по часовой и в обратном направлении Вот на всякий случай оператор поворота на угол А !cosA -sinA! ! x ! !sinA cosA! * ! y ! ЗЫ а вообще тема обсуждалась пару недель назад... тока найти чего то не могу |
| Автор: Elfet 4.12.2006, 17:07 |
| |
| Автор: SoWa 4.12.2006, 20:44 | ||
Извини, на Дельфи. l- длинна концов стрелки. С остальным, думаю, проблемм не будет? СУВ, SoWa. |
| Автор: Elfet 4.12.2006, 20:58 |
| Немножко тяжело разобраться уже в готовом коде. |
| Автор: SoWa 5.12.2006, 05:03 |
| Математикой не умею. Значит так. Берем координаты конца стрелки и по синусам/косинусам определяем координаты вершинок отрезков. Рассматриваются 4 случая, когда вершина стрелки в каждой из четвертей, там значения синусов и косинусов по знакам разные. Все делалось сперва на обрывке бумажки, а потом уж в компе Удачи! |
| Автор: Elfet 5.12.2006, 18:14 |
| Можешь выложить бумажку? |
| Автор: SoWa 5.12.2006, 18:59 |
| Ууу. Это я два года назад делал Все просто. Берешь точку. По формуле l*sin(x) и l*cos(x) получаешь изменения координат для концов стрелочек. Прибавляешь их с учетом знака(зависит от четверти) к координатам конца отрезка. А тебе суть понять важно или программу? Если алгоритм, то завтра почеркаюсь и выложу. |
| Автор: Elfet 5.12.2006, 22:20 |
| Суть я тоже понимаю |