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

Förstoring i ett kordinatsystem

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

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Ä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.

 

 

 

Dela detta inlägg


Länk till inlägg
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

 

Dela detta inlägg


Länk till inlägg
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

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...