![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TCanvas (нарисовать стрелочку) [D7, XP]
fics © (2007-12-26 17:59:00)С наступаущим всех Новым Годом. Подскажите пожалуйта как рисовать стрелочку "на конце линии". Ну вот для примера кусочек кода(перемещаю шейпы, и перерисовывается линия от ондного шайпа к другому) А как сделать чтобы рисовалась стрелочка от дного к другому шейпу непойму, какой формулой пользоваться.
Разберался в одном исходнике (фомула Мейсона) но ничего к сожалению не понял.
................................................................................ .......................
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
with PaintBox1.Canvas do begin
MoveTo(Shape1.Left+5,Shape1.Top+5);
LineTo(Shape2.Left+5,Shape2.Top+5);
{5 - это половина длины
Shap-a чтобы линия рисовалась от центра одного
к центру другого компонента }
end;
end;
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
//перемещение по форме
if (SSLeft in Shift) then begin
TShape(Sender).Left:=TShape(Sender).Left+X;
TShape(Sender).Top:=TShape(Sender).Top+Y;
PaintBox1.Repaint;
end;
end;
procedure TForm1.Shape2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Shape2.OnMouseMove:=Shape1.OnMouseMove;
end;
fics (2007-12-27 11:38:00) [1]
> Григорьев Антон
Спасибо
Григорьев Антон (2007-12-27 08:33:00) [2]Вот несколько вариантов:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=33048
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=30942
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=28175
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=19368
@!!ex (2007-12-26 18:40:00) [3]> [6] fics © (26.12.07 18:28)
Я уже сказал как ее решить. ТАМ решается именно ТАК.
Вектор то повернуть то сможешь, относительно центра координат?
Это вроде в классе 8 проходят...
Джо (2007-12-26 18:28:00) [4][offtop]
Праздники, стрелки пляшут :)
[/offtop]
fics (2007-12-26 18:28:00) [5]
> @!!ex ©
> http://afera-net.narod.ru/GraphEditor.rar
Но там только exe файл, как решить мою проблему никаких данных нет.
@!!ex (2007-12-26 18:19:00) [6]> [2] fics © (26.12.07 18:12)
Что значит "плясать" начинают??
Впервые слышу такую проблему...
http://afera-net.narod.ru/GraphEditor.rar
Ничто никуда не пляшет вроде...
AlexanderMS (2007-12-26 18:13:00) [7]
> непойму, какой формулой пользоваться.
Какая стрелочка нужна?
Если "треугольник", то см. векторы: коллинеарность, перпендикулярность векторов.
fics (2007-12-26 18:12:00) [8]Так проблем бы не было если бы линия была неподвижна, а вот при перемещении, стрелочки начинают "плясать". А как задать что-то в градусах,
впервый раз с такой проблемой сталкивають, потому и спрашиваю.
@!!ex (2007-12-26 18:06:00) [9]> [0] fics © (26.12.07 17:59)
рисуешь линию. потом с кона линии еще одну, под углом градусов 15, и еще одну под углом - 15.
Получаешь стрелочку.
И где проблема?