![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рисование прямых
Робинзон © (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, как видно, тебе уже знакомо.