Avatar billede d3c Nybegynder
27. maj 2010 - 09:16 Der er 10 kommentarer

Geometri

Jeg har en kasse, som jeg skal beregne x og y-værdier for. Kassen ser således ud:

---
|-|
---

Nederste venstre hjørne er x1,y1. Øverste højre hjørne er x2,y2.

Kassen kan være drejet z grader. Hvordan finder jeg altid x2,y2 på trods af drejningen på z grader?
Avatar billede claes57 Ekspert
27. maj 2010 - 10:22 #1
ved drejning på 0 grader er der fuld visning
ved drejning på 90 grader er x2,y2 lodret over x1,y1
det passer med cosinus
y1 og y2 er altid korrekte, kun x2 ændres med vinklen z.
Så x2 = x1 + (x2-x1)*cos(z)
Avatar billede d3c Nybegynder
28. maj 2010 - 13:08 #2
claes57: Prøv lige at kig på http://img84.imageshack.us/img84/4346/illustrationp.jpg - det er en engelsk beskrivelse af mit problem. Kan du løse det? En glyph er ét tegn og alpha er hældningen i grader.
Avatar billede claes57 Ekspert
28. maj 2010 - 13:25 #3
hvis den bare skal vippes 90 grader - så er det enkelt.
x1,y1 er det samme, og x2,y2 skal rettes med ny bredde/højde.
glbred=x2-x1
glhjde=y2-y1
nybred=glhjde
nyhjde=glbred
den nye x2 bliver så den gamle x2-glbred+glhjde = x1+y2-y1
den nye y2 = y2-glhjde+glbred = y1+x2-x1
Avatar billede d3c Nybegynder
28. maj 2010 - 14:19 #4
claus57: Den skal altid vippes n grader. Det behøver ikke være 90. (x1,y1) skal altid være nederste venstre hjørne. (x2,y2) skal altid være øverste højre hjørne. Har du Skype? Jeg vil godt betale (DKK) såfremt du kan løse problemet, da det haster meget.
Avatar billede d3c Nybegynder
28. maj 2010 - 14:30 #5
(også som kommentar, ved ikke om du modtager det ellers)

claus57: Den skal altid vippes n grader. Det behøver ikke være 90. (x1,y1) skal altid være nederste venstre hjørne. (x2,y2) skal altid være øverste højre hjørne. Har du Skype? Jeg vil godt betale (DKK) såfremt du kan løse problemet, da det haster meget.
Avatar billede claes57 Ekspert
28. maj 2010 - 15:12 #6
er det så vinkel fra 0 til 90 - eller drejer det hele vejen rundt?
Du skal have nogle intervaller, hvor du skifter laveste/venstre punkt - ved 360 graders rotation vil alle fire hjørner jo undervejs være lavest/venstre undervejs. Jeg vil forslå skift ved 45/135/225/315 grader.
Avatar billede martin_moth Mester
29. maj 2010 - 10:00 #7
#1 er da ikke rigtig. X2 vil blive mindre, ikke større, når man drejer mod uret. Og mon ikke vinklen z måles positivt mod uret, som man altid gør i et alm. retvinklet koordinatsystem. Og Y2 vil da ændre sig, og ikke blive uændret som du siger!
Avatar billede martin_moth Mester
29. maj 2010 - 10:01 #8
Hvis det stadig er relevant (det hastede jo), vil jeg gerne komme med en løsning
Avatar billede martin_moth Mester
29. maj 2010 - 10:02 #9
Avatar billede martin_moth Mester
29. maj 2010 - 10:18 #10
Ok - du kan da få den her:

X2_rot = X2*cos(z) - Y2*sin(z)

Y2_rot = X2*sin(z) + Y2*cos(z)

Forudsætninger:

1. Vi roterer om x1,y1
2. Vi har et retvinklet koordinatsystem, x-aksen positiv mod højre, yaksen positiv opad
3. Vinklen z måles fra x-aksen mod uret (som sædvanligt)
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
Computerworld tilbyder specialiserede kurser i database-management

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