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

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

Построение линии на основе карт высот


dzmitry[li] ©   (2009-04-02 09:56:00) 

Есть матрица
x11 x12 x13 ... x1n
x21 x22 x23 ... x2n
x31 x12 x33 ... x3n
xm1 xm2 xm3 ... xmn


как на её основе построить изолинии? такие как на картах, посоветуйте теорию или название


dzmitry[li]   (2009-04-03 11:20:00) [1]

Putnik спасибо!

Jeer учебники, как нарисовать - хватает... циркулем и на милиметровке, в красивую компьютерную модель не получилось


Jeer   (2009-04-02 15:11:00) [2]


> но вот линии построить! тут я торможу...
> продуктов, что бы сделать другими програмами (тем же Ози)
> - навалом,


Значит пока ты не готов сделать аналог Ozi, тем более Ozi3D


Немо   (2009-04-02 13:49:00) [3]

что-то вроде

procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
 for i:=0 to 4 do
  for j:=0 to 4 do stringgrid1.cells[i,j]:='0';
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
a:array[-1..5,-1..5] of integer;

procedure LineToEq(x,y,v:integer);
var i,j:integer; p:tpoint;
begin
  p.X:= x*50;
  p.Y:= y*50;
  for i:=0 to 4 do
   for j:=0 to 4 do
     if (i=x) and (j=y) then continue
     else begin
       if (abs(i-x)<2) and (abs(j-y)<2) and (a[x,y]=a[i,j])
       then begin
         paintbox1.Canvas.PenPos := p;
         paintbox1.Canvas.Pen.Color:=a[x,y];
         paintbox1.Canvas.LineTo(i*50,j*50);
       end;
     end;
end;

begin
 fillmemory(@a,4*49,255);
 for i:=0 to 4 do
  for j:=0 to 4 do a[i,j]:=strtoint(stringgrid1.cells[i,j]);

 for i:=0 to 4 do
  for j:=0 to 4 do begin
    paintbox1.Canvas.Ellipse(i*50,j*50,i*50+a[i,j]*3,j*50+a[i,j]*3);
    LineToEq(i,j,a[i,j]);
  end;

end;


Putnik   (2009-04-02 12:32:00) [4]

http://anfilat.chat.ru/tpcolor.htmпосмотрите, может поможет


dzmitry[li]   (2009-04-02 12:10:00) [5]

ээ, ммм, нууу
короче говоря по srtm нужно построить изолинии рельефа
апроксимацией узнать высоту в любой точке можно без проблем, но вот линии построить! тут я торможу...
продуктов, что бы сделать другими програмами (тем же Ози) - навалом, но вот как самому?
(кто б знал что такая тема - тема для начинающих)


brother   (2009-04-02 09:57:00) [6]

эээ, те нужно по x11 x12 x13 ... x1n координатам, потом по x21 x22 x23 ... x2n итд, строить? если да- то кривые бизье или сплайны тебя спасут?


Наверх

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