Показать сообщение отдельно
Старый 28.01.2010, 01:25   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Рисование треугольника по углам

Вот как средствами MFC я рисовал стрелку (т.е. линиюс треугольником на конце).
Линия от (x1,y1) до (x2,y2).
Острие стрелки - (x3,y3).
LenNodVLine - высота, из (x3,y3).
AngNodVLine - половина(?) угла при вершине (x3,y3).
		alpha=atan(double(y2-y1)/double(x2-x1));
		if(x2-x1>=0)alpha+=PI;
		x4=x3+LenNodVLine*cos(alpha-AngNodVLine);
		x5=x3+LenNodVLine*cos(alpha+AngNodVLine);
		y4=y3+LenNodVLine*sin(alpha-AngNodVLine);
		y5=y3+LenNodVLine*sin(alpha+AngNodVLine);

		LINK[0].x=x3;
		LINK[0].y=y3;
		LINK[1].x=x4;
		LINK[1].y=y4;
		LINK[2].x=x5;
		LINK[2].y=y5;

		dc.MoveTo(x1,y1);
		dc.LineTo(x2,y2);
		dc.Polygon(LINK,3);
Если не найдёшь готовый алгоритм - не трудно из моего вывести.
Или MidletPascal не умеет рисовать многоуольники?
Вопрос алгоритмический или на математику?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Harter (28.01.2010)