Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.
Получаешь стрелочку.
И где проблема?


Наверх

Титульная страница Поиск, карта сайта Написать письмо