Just nu i M3-nätverket
Gå till innehåll

Förstoring i ett kordinatsystem


fredand

Rekommendera Poster

Hej!

 

Jag behöver en fiffig formel för att förstora en area i ett kordinatsystem.

Det jag har är kordinaterna för en area.

 

Anta att man ska förstora arean med 50% så vill jag ha tag på de nya kordinaterna. Arean är tänkt att den ska förstora sig åt alla håll. Antag att ursprunget ser ut så här:

5 kordinater = en sammanbunden area

(-1.0, 1.0)

(1.0, 1.0)

(1.0, -1.0)

(-1.0, -1.0)

(-1.0, 1.0)

 

Nu ska jag t ex förstora med 50% så resultat borde bli:

(-1.5, 1.5)

(1.5, 1.5)

(1.5, -1.5)

(-1.5, -1.5)

(-1.5, 1.5)

 

Detta verkar funka om jag gångrar med 1.5.

 

Men problemet blir om grundkordinaterna är t ex

(1.0, 2.0)

(2.0, 2.0)

(2.0, 1.0)

(1.0, 1.0)

(1.0, 2.0)

 

Gångrar jag nu med 1.5 expanderar ju inte arean "åt alla håll" utan på detta sätt:

(1.5, 3.0)

(3.0, 3.0)

(3.0, 1.5)

(1.5, 1.5)

(1.5, 3.0)

 

I kordinatsystemet har ju arean flyttat sig åt sidan.

 

Det jag vill är snarare:

(0.75, 2.5)

(1.25, 2.5)

(1.25, 0.5)

(0.75, 0.5)

(0.75, 2.5)

I min mening skulle detta expandera lika mycket "åt alla håll" från den ursprungliga positionen.

 

Så om någon har något bra trick så får ni gärna hojta!

Mvh

 

Fredrik

 

 

 

Länk till kommentar
Dela på andra webbplatser

  • 1 month later...

Är det en kvadrat eller en rektangel eller båda två. Koordinaterna i exemplet är en kvadrat.

 

Om det är en kvadrat är det enklare.

Se till att alltid starta med en viss koordinat så att du vet att x1,y1 kommer före x2,y2. Då kan du beräkna sidans längd.

 

Om Arean skall öka med säg 50% innebär det att

A2 = A1 + A1*Faktor

 

Sidans längd är då S = Abs(x1 - x2) = SQRT(A1)

=> förlängningen F blir SQRT(A2) - S

 

Sedan får du riktingsbestämma förlängningen och öka/minska både X och Y med F

 

 

Är det en rektangel så får du bestämma varje sida för sig vilket gör att du måste propotionera förlängningen för a och b.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Tack för ditt svar!

 

Den slutliga formeln är tänkt att den ska fungera på en "barbapappaform" alltså helt godtyckligt.

 

Så rätta mjig om jag har fel då jag säger att man först måste hitta centrum och sedan tänka sig olika radie ut till alla nuvarnade koordinater. Radierna förlängs med en viss procent och sen borde man kunna räkna fram de nya koordinaterna.

 

Jag är dock osäker på hur det kulle gå till, men det är det enda jag kommit fram till om det ska fungera på en barbapappa.

 

Rätta mig om jag har fel.

 

Mvh

Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Absolut. Men varför hitta centrum om du kan hålla reda på det.

 

Jag kan tänka mig att det finns några problem att ta i tu med men om du vet centrum är det ju inga problem.

 

Hoppas att det hjälper dig

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...