Avatar billede goldeneyes Nybegynder
16. januar 2005 - 00:21 Der er 3 kommentarer

Kortmåler? forbind koordinater, og gem i db.

Jeg er igang med et lille program, der kan måle afstande på et kort.
I prinsippet skal der afsættes et kordinat, når man kliker, som skal forbindes med det næste og det næste og...

Koordinaterne skal være flytbare, så man kan rykke rundt på nøglepunkterne senere, og så vil jeg gerne vide hvordan jeg kan gemme alle disse koordinater i et enkelt felt i en access database.

Nogen der ved hvordan man kan lave et sådan program?!?

Haster lidt.
Avatar billede doc404 Novice
16. januar 2005 - 00:52 #1
Det her er altså et lidt surt opstød.

Men du misforstår meningen med eksperten og du beder om er fuldstændig hen i vejret. Eksperten er til at få hjælp til et konkret problem eller hjælp til at blive guidet i den rigtige retning. I bund og grund spørger du om nogen kan lave et basalt GIS program.

Hvad er det for kort og hvad er formatet?
Hvorfra kendes størrelsesforhold?
Skal der regnes med storcirkler eller kan simpel geometri gå an?
Skal der tages højde for 2D kortets manglende even til at vise skalaforhold korrekt?

Start dog med at dele opgaven op i håndterbare størrelser. Forsøg dig frem og spørg til konkrete problemer i stedet for at slynge en sådan smøre ud. Når du så har lært at flytte rundt på streger og punkter på skærmen, så er det at gemme det i et enkelt felt grundliggende viden.

For en hærdet programmør er svaret på dit spørgsmål Ja, men du starter på et alt alt for højt niveau.
Avatar billede goldeneyes Nybegynder
16. januar 2005 - 01:01 #2
Tror du misforstår mig en lille smule, og det er nog fordi jeg er for dårlig til at formulere mig.
Jeg ønsker ikke et færdigt program. Jeg åbner en billed fil af et kort (bmp, jpg, gif), og med canvas tegner jeg nogle streger efterfulgt af hinanden. Denne del virker fint nok (fik ikke lige det skrevet i sp.) Problemet består nu i 2 ting.

1. Hvordan gemmer jeg de koordinater, så jeg senere kan bruge dem?
Skal jeg bare smide dem efterhinanden, med et separatortegn og så smide dem i min db? -> virker lidt for simpelt...

2. Hvordan kan jeg senere lave så jeg kan flytte rundt på mine hjørnepunkter?

Al beregninger af målestok og afstand mm, bygger på simpel geometri, som heller ikke er noget problem.
Avatar billede doc404 Novice
16. januar 2005 - 01:30 #3
Se, det gør jo det hele noget nemmere. ;-)

1. Din ide er da ok. x,y;x,y etc eller blot x,y,x,y,x,t
2. Først skal du gemme alle dine hjørnekoordinater i en array. Når der så klikkes (fanges med OnMouseClick finder du det hjørne der er klikket på ved at søge om musekoordinaterne ligger 'inden for hjørnet'. Eksempel ud af hovedet ikke testet eller noget:

var
  Corners : array[0...499] of TPoint;
  nCorners : integer;
  idxClicked : integer;
procedure OnMouseDown(X,Y)
var
  i : integer;
begin
  for i := o to nCorners - 1 do
    if (X >= (Corners[i].X - 5)) and (X <= (Corners[i].X + 5)) and
      (Y >= (Corners[i].Y - 5)) and (Y <= (Corners[i].Y + 5)) then
        begin
          idxClicked := i; // nu har du indexed på det hjørne der blev klikket på
          Break;
        end;
end;

procedure OnMouseUp(X,Y)
begin
  Corners[i] := Point(X,Y);
  RedrawAllCorners; // gentegn det hele...
end;

Kan du komme videre med dette?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester