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

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

Рисование прямых


Робинзон ©   (2007-06-18 14:25:00) 

У меня возникло небольшое затруднение. Если кто сможет то пожалуйста помогите. Проблема вот в чем. Я пишу программу для туристов "Электронная карта" (т.е. в PaintBox загоняется рисунок карты или создается сам так как имеются условные обозначения , карандаш и т.д. имеются поля ввода расстояния, времени и азимута). И программа должна прорисовать весь маршрут который я ввожу.
За начало я выбираю точку. Задача вот в чем координаты конечной точки должны быть начальными координатами для следующих прямых.
вот часть кода (здесь вводятся x , у и угол а)

var
x:integer; // аргумент функции
y:integer ; // значение функции в точке x
a:integer;
x0:integer; // аргумент функции
y0:integer;
begin
with MainForm.Canvas do
begin
x0:=StrtoInt(MainForm.Edit1.Text);
y0:=StrtoInt(MainForm.Edit2.Text);
a:=StrtoInt(MainForm.Edit3.Text);
x:=x0*(a);
y:=y0*(a);

MoveTo(300+x,y-a);LineTo(x,y);</CODE


Сергей М.   (2007-06-18 17:08:00) [1]

Гугли по теме
Developer Express Visual Component Library


Робинзон   (2007-06-18 16:45:00) [2]

Ссылкой не поделишься, а то я не могу найти


Сергей М.   (2007-06-18 16:33:00) [3]


> Скачал Vector Graphics ActiveX


Не знаю что это такое, но он может тебе и не подойти, поскольку тебе требуется в т.ч. и  "загонять рисунок карты"

А вот deFlowChart уж точно подойдет - он позволяет манипулировать как векторными, так и растровыми объектами.


Робинзон   (2007-06-18 16:14:00) [4]

Скачал Vector Graphics ActiveX но не могу установить


Сергей М.   (2007-06-18 15:47:00) [5]

Э, пардон ..

Не FlowChart ActiveX, а TdxFlowChart в составе пакета компонентов DevExpress - оно самое то и есть.


Сергей М.   (2007-06-18 15:45:00) [6]

И что ?

Чем не диаграмма то, что тебе требуется получить ?

Самая она и есть)


Робинзон   (2007-06-18 15:39:00) [7]

Но это же контрол для создания и редактирования диаграм


Сергей М.   (2007-06-18 15:32:00) [8]


> Робинзон   (18.06.07 14:51) [6]


Может не стоит заниматься изобретением очередного деревянного велосипеда с дюжиной треугольных колес, а сосредоточиться вместо этого на поиске и применении ужесуществующих компонентов, позволяющих хранить/показывать/редактировать векторно-растровые графические объекты ?

Например FlowChart ActiveX control ?


Робинзон   (2007-06-18 15:26:00) [9]

Это же нужно тогда три массива если я правильно понял:
1. Вводятся расстояния
2 Вводится время
3 Вводится азимут


Робинзон   (2007-06-18 15:09:00) [10]

Это что то типа этого
var
 a : array[1..5] of integer;          
 i: integer;              
begin
   for i:= 1 to 5 do
    if Length(StringGrid1.Cells[i-1,0]) <> 0
       then a[i] := StrToInt(StringGrid1.Cells[i-1,0])
       else a[i] := 0;


Efir   (2007-06-18 15:05:00) [11]

var
 mas:array of тип;

Выделяем память:
SetLength(mas, кол-во элементов);


Робинзон   (2007-06-18 14:57:00) [12]

Извини жутко торможу. А как его использовать?


Efir   (2007-06-18 14:56:00) [13]

А динамический массив?


Робинзон   (2007-06-18 14:53:00) [14]

Если я буду использовать массив то количество прямых ограничено. А мне за ведомо не известно сколько их будет.
> А где код рисования второй прямой?

Не понял .


Робинзон   (2007-06-18 14:51:00) [15]


> Ну так не пиши ее - проблема рассосется сама собой)
>
> Или проблема не только в этом ?

 Я создал справочник для туристов и по  выживанию в экстремальных ситуациях с кучей всевозможных приложений таких как (термометр, блокнот, психрометр (прибор для обределения влажности), высотомер, секундомер, часы и будильник, календарь с определением фаз луны и восходом солнца , секстант, калькулятор, для определения количества топлива, и многие другие. И вот я придумал еще одно приложение "Электронная карта" или маршрутизатор. где данные маршрута записываются в базу данных. И вычерчивается маршрут по данным путь, время, азимут.


MBo   (2007-06-18 14:50:00) [16]

MoveTo(начало 1)
LineTo(конец 1)
LineTo(конец 2)
LineTo(конец 3)
...

Если все точки держать в массиве, то достаточно одного вызова PolyLine


KSergey   (2007-06-18 14:46:00) [17]

А где код рисования второй прямой?


Робинзон   (2007-06-18 14:42:00) [18]

Рисует не то что надо мне нужно чтобы конечные координаты первой прямой были начальными координатами второй прямой и т.д. Т.е получалась ломаная( непрерывный путь)


Сергей М.   (2007-06-18 14:32:00) [19]


> Проблема вот в чем. Я пишу программу


Ну так не пиши ее - проблема рассосется сама собой)

Или проблема не только в этом ?


MBo   (2007-06-18 14:30:00) [20]

непонятно, в чем загвоздка, т.к. MoveTo и LineTo, как видно, тебе уже знакомо.


Наверх

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