Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.15;
Скачать: CL | DM;

Вниз

Рисование прямых   Найти похожие ветки 

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

У меня возникло небольшое затруднение. Если кто сможет то пожалуйста помогите. Проблема вот в чем. Я пишу программу для туристов "Электронная карта" (т.е. в 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


 
MBo ©   (2007-06-18 14:30) [1]

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


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


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


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

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


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

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


 
KSergey ©   (2007-06-18 14:46) [4]

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


 
MBo ©   (2007-06-18 14:50) [5]

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

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


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


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

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


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

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

Не понял .


 
Efir ©   (2007-06-18 14:56) [8]

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


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

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


 
Efir ©   (2007-06-18 15:05) [10]

var
 mas:array of тип;

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


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

Это что то типа этого
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;


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

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


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


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


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

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


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

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


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

И что ?

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

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


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

Э, пардон ..

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


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

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


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


> Скачал Vector Graphics ActiveX


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

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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2007.07.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
4-1170237048
pohil
2007-01-31 12:50
2007.07.15
Убийство PrintScreen


2-1182168494
nord489
2007-06-18 16:08
2007.07.15
Копирование файлов


2-1182495565
Ral'f
2007-06-22 10:59
2007.07.15
БД Access защищена паролем


8-1161848705
Lebedev
2006-10-26 11:45
2007.07.15
Графика и видео в приложении.


2-1182348433
deras
2007-06-20 18:07
2007.07.15
В какое поле записать текущую дату и время?: