![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
![]() По-моему Вам человек нормально всё объяснил:
1. Там где описаны глобальные переменные Var MainForm:TForm;(это находится в самом верху) Добавляешь строчку BegX ,BegY :Integer; 2. В своём коде пишешь: 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); Определись, где будешь присваивать BegX значение -1, либо в OnGreate либо при объевлении переменной. Вычерчивание прямой уже будет выглядеть как: If BegX<0 then begin MoveTo(300+x,y-a); LineTo(x,y); BegX :=x; BegY:=y; End Else Begin MoveTo(BegX ,BegY); LineTo(x,y); End; |
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
![]()
Рисует но если я рисую третью прямую, четвертую и т.д. то получается с одной точки выходят лучи
|
![]() |
![]() |
![]() |
#13 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Сколько можно объяснять?
Не надо перед каждым LineTo вызывать MoveTo , тем самым возвращая карандаш на исходную позицию. Даже учитывая, что координаты для MoveTo будут правильно рассчитываться (что явно не так, раз лучи из одной точки), она там все равно не нужна, ведь прямые рисуются последовательно.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 19.06.2007 в 13:19. |
![]() |
![]() |
![]() |
#14 | |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
![]() Цитата:
Последний раз редактировалось Aleksandr; 19.06.2007 в 13:45. |
|
![]() |
![]() |
![]() |
#15 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
The following code draws a line from the upper left corner of a form to the mouse position when the mouse is moved, creating a “rubber band” effect.
Следующий код рисует линию из верхнего левого угла формы до позиции мыши когда мышь движется, создавая эффект резиновой ленты. procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin { first call FillRect to paint the surface of the form. this removes any previously drawn lines (and anything else!) } {сперва вызовите FillRect чтобы закрасить поверхность формы, это убирает все нарисованные до этого линии (и все остальное!)} Canvas.FillRect(ClientRect); Canvas.MoveTo(0, 0); Canvas.LineTo(X, Y); end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#16 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
This example paints a white five pointed star in a paintbox control:
Этот пример рисует белую пятиконечную звезду в PaintBox procedure TForm1.PaintBox1Paint(Sender: TObject); begin with Sender as TPaintBox do begin Canvas.Pen.Color := clWhite; Canvas.Polyline([Point(40, 10), Point(20, 60), Point(70, 30), Point(10, 30), Point(60, 60), Point(40, 10)]); end; end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#18 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Это примеры из Дельфи хелпа функций LineTo, MoveTo и Poliline. Все они тебе нужны, ну может кроме Poliline если все точки сразу не известны.
И потом рисовать на канве формы не лучший выход, при обновлении (например при сворачивании, выхода за пределы экрана) все нарисованное тобой пропадет. Рисуй на канве Image или PaintBox.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
![]()
Рисую я в paintBox. В прикрепелнном файле я бросил небольшое пояснение как должно работать. Надеюсь будет понятно. С созданием карты и загрузкой проблем нет. Проблема возникла в рисовании маршрута ( ломаной линии).
Последний раз редактировалось Aleksandr; 21.06.2007 в 14:37. |
![]() |
![]() |
![]() |
#20 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Про PaintBox я неправильно написал, там тот же принцип отрисовки что и на форме, будет пропадать.
//глобальные переменные var x0,y0: integer; //точка отправления PaintBox1.OnMouseDown begin x0:=x;//эти x и y это координаты мыши y0:=y; paintbox1.canvas.moveto(x,y); end; OnClick кнопка Записать var x,y: integer; //точка прибытия begin //расчитываем точку прибытия взяв данные из эдитов и x0,y0. Не буду вникать, напиши сам x:= ***; y:= ***; paintbox1.canvas.LineTo(x,y); x0:=x; y0:=y; end; Вот и все, если пользователь между расчетами не будет тыкать мышкой по карте, сбивая x0,y0 координаты, все будет ОК. Но лучше это учесть. Могу предложить название программе Ivan Susanin Pro
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 19.06.2007 в 16:30. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Построение поверхностей | pushok | Помощь студентам | 1 | 04.02.2008 08:06 |
Построение графиков на C# | TheGuardian123 | Общие вопросы .NET | 2 | 29.01.2008 14:50 |
(С++) Построение графика tg(x)=y. | Panterka | Помощь студентам | 2 | 13.12.2007 09:32 |
Построение диаграммы | Владислав Крюков | Microsoft Office Excel | 12 | 14.11.2007 23:50 |