Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.06.2011, 19:24
pharmestik pharmestik вне форума
Прохожий
 
Регистрация: 25.06.2011
Сообщения: 2
Репутация: 10
По умолчанию вывод графика из массива координат

Здравствуйте! Есть двумерный массив координат объектов на Канве.

Хочу представить заполнение канвы графически.

Код HTML:
begin inc(cht); crdt[cht,1]:=Panel5.Left; crdt[cht,2]:=Panel5.Top;


Чтобы при совпадении чисел по горизонтали, шло сложение по вертикали.
И результат построение кривой. Может кто подскажет что-нибудь похожее.
Ответить с цитированием
  #2  
Старый 25.06.2011, 19:37
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Пройти по массиву двумя циклами, если есть совпадения - сложить.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
i:=0;
while i<cht-1 do
begin
 j:=i+1;
 while j<cht do
 begin
  if crdt[i,1]=crdt[j,1] then
  begin
    crdt[i,2]:=crdt[i,2]+crdt[j,2]
    for k:=j to cht-1 do
    begin
      crdt[k,1]:=crdt[k+1,1];
      crdt[k,2]:=crdt[k+1,2];
    end;
    dec(cht);
    dec(j);
  end;
  inc(j);
 end;
 inc(i);
end;
А дальше рисуешь график по массиву значений через LineTo.

Offtop: Представляю, какая жуть получится...
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 27.06.2011, 12:56
pharmestik pharmestik вне форума
Прохожий
 
Регистрация: 25.06.2011
Сообщения: 2
Репутация: 10
По умолчанию А как практически это осуществить?

Что-то не получается. как это сделать практически?
Canvas.MoveTo(0,0);
Canvas.LineTo(crdt[k,1],crdt[k,2]);

ReleaseDC(0, DC);

Последний раз редактировалось pharmestik, 27.06.2011 в 18:12.
Ответить с цитированием
  #4  
Старый 27.06.2011, 21:40
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

ReleaseDC тут ни при чем.
Код:
1
2
3
Canvas.MoveTo(crgt[0,1],crdt[0,2]);
for i:=1 to cht-1 do
  Canvas.LineTo(crgt[i,1],crdt[i,2]);
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 27.06.2011, 21:45
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

А что удаляется строкой ReleaseDC(0, DC);?
p.s. ух, проспал.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:59.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025