Astronomi

Udgave med oversættelse af verdens koordinatsystem til kartesisk koordinat

Udgave med oversættelse af verdens koordinatsystem til kartesisk koordinat


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Jeg har to fit-billeder fra WFC3, som jeg prøver at kombinere med et C # -program. Når jeg prøver at kombinere flere billeder, synes jeg ikke, at de værdier, jeg får for mine x / y-koordinater (beregnet ud fra Right Ascension / Declination), er korrekte. Jeg forventer et endeligt billede, der er omtrent samme bredde som de to billeder kombineret, men det viser sig at være omtrent samme bredde og omkring det dobbelte af højden. Jeg ved, at det endelige billede skal være omtrent dobbelt så bredt som et enkelt billede, fordi jeg manuelt kombinerede billederne i Photoshop, og det endelige billede var ca. dobbelt så bredt som et af de to originale billeder.

BEMÆRK: når jeg siger "billede" er det passer til billeder, så de er bare en flok enkeltværdier i en fil, så for at kombinere dem opretter jeg en ny fil og initialiserer det korrekte antal enkeltværdier (bredde * højde) til nul , og udfyld derefter værdierne fra de billeder, jeg bruger til at kombinere. De er ikke jpg eller tif eller png.

Jeg bruger følgende formel til at skifte fra verdens koordinatsystem til kartesisk: formel er (da afstanden er den samme for alt): x = cos (dec) * cos (ra) y = cos (dec) * sin (ra)

Jeg får den rette opstigning og deklination fra overskriften i tilpasningsfilen.

For de endelige billeddimensioner beregner jeg afstanden mellem x1 og x2 og opretter et nyt billede, der er 1/2 billede 1 bredde + afstand + 1/2 billede 2 bredde. For den endelige højde foretager jeg en lignende beregning med y og billedhøjder.

Billederne har også en roterende komponent, men jeg ignorerer det, da begge billeder deler den samme rotation. Dette kan være en del af mit problem.

offentlig const dobbelt PixelsPerArcSecond = .039; // pr. WFC3 spec fra Nasa offentlige statiske ImageDataModel Combine (liste inputImages) {// Højre opstigning er CRVAL1 // Dekulation er CRVAL2 // formel er (da afstanden er den samme for alt): // x = cos (dec) * cos (ra) // y = cos (dec) * sin (ra) ImageDataModel returnImage = ny ImageDataModel (); ImageDataModel bm = inputImages [0]; dobbelt x1, y1, x2, y2; x1 = Math.Cos (bm.CRVAL2) * Math.Cos (bm.CRVAL1); y1 = Math.Cos (bm.CRVAL2) * Math.Sin (bm.CRVAL1); int mult = 4; // todo: indstil dette baseret på bitpixet for de indgående billeder. for (int i = 1; i 

Jeg forventer et billede, der viser sig sådan:
http://wierdling.net/stack-overflow-images/ManuallyCombined.png">http://wierdling.net/stack-overflow-images/CombinedTest.png">https://bitbucket.org/wierdling/fitscombiner/ src / master /

Det fungerer i øjeblikket kun med WFC3-data, og programmet er meget igangværende arbejde.


Konvertering mellem Box2D verdens koordinater og skærmkoordinater # 7

Ifølge "The Nature of Code" er koordinatsystemet til Box2D et standard kartesisk system, mens det til behandling er et med oprindelsen øverst til venstre i vinduet, med y-koordinaten stigende nedad og x-koordinaten til højre.

Test af koordinatkonverteringsfunktionerne i pbox2d giver dog et andet billede:

giver følgende output i meddelelsesområdet:

Så det ser ud til, at en skærmkoordinat med x = 0 svarer til en verdensposition med x-koordinat = -5, og en skærmkoordinat med y = 500 (eller generelt bredden på vinduet, som jeg har bekræftet ved test med forskellige størrelser af vinduet) resulterer i en verdensposition med y-koordinat = -5,0. Skaleringsfaktoren er altid 1/10.

Er der en grund til, at oprindelsen til Box2D verdens koordinatsystem ikke svarer til midten af ​​skærmen? Jeg har ikke meget fortrolighed med hverken box2d eller Processing, og jeg sprang direkte ind i kapitel 5 i "The Code of Code", så undskyld, hvis jeg mangler noget, der burde være almindeligt kendt.

Teksten blev opdateret, men disse fejl opstod:

Vi kan ikke konvertere opgaven til et problem på nuværende tidspunkt. Prøv igen.

Problemet blev oprettet, men vi kan ikke opdatere kommentaren på nuværende tidspunkt.


Historie

Adjektivet Kartesisk henviser til den franske matematiker og filosof René Descartes (som brugte navnet Cartesius på latin).

Ideen om dette system blev udviklet i 1637 i to skrifter af Descartes og uafhængigt af Pierre de Fermat, selvom Fermat brugte 3 dimensioner og ikke offentliggjorde opdagelsen. [1] I del to af hans Diskurs om metodeDescartes introducerer den nye idé om at specificere et punkt eller et objekts position på en overflade ved hjælp af to skæringsakser som målestyr. [nødvendig henvisning] I La Géométrie, han udforsker yderligere de ovennævnte begreber. [2]

Det kan være interessant at bemærke, at nogle har antydet, at kunstnerne fra renæssancen brugte et gitter i form af et trådnet som et værktøj til at nedbryde komponenterne i deres emner, de malede. At dette kan have påvirket Descartes er kun spekulativt. [nødvendig henvisning] (Se perspektiv, projektiv geometri.) Repræsenterer en vektor i standardbasis. Udviklingen af ​​det kartesiske koordinatsystem muliggjorde udviklingen af ​​calculus af Isaac Newton og Gottfried Wilhelm Leibniz. [3]

Selvom Descartes udlåner sit navn til systemet, har forskere før ham brugt to- og trepunkts koordinatsystemer, herunder Abu Rayhan Biruni, en persisk polymat fra det tiende og ellevte århundrede. [4]

Mange andre koordinatsystemer er blevet udviklet siden Descartes, såsom de polære koordinater til planet og de sfæriske og cylindriske koordinater til et tredimensionelt rum.


Hvad er TWCC?

TWCC, "The World Coordinate Converter", er en Open Source værktøj til at konvertere geodetiske koordinater i en bred vifte af referencesystemer.

Der findes allerede flere værktøjer til koordineringskonvertering, men her er hvad der gør styrken ved TWCC:

  • Dette værktøj er intuitiv og nem at bruge.
  • Muligheden for at tilføje brugerdefinerede systemer og brugen af ​​et interaktivt kort gør det fleksibel.
  • Ingen download eller speciel installation er påkrævet, skal du bare have en internetforbindelse.
  • TWCC er kompatibel i de fleste miljøer (Mac, Linux, Windows.).
  • TWCC er helt GRATIS og licenseret under Affero GNU: AGPL

TWCC blev oprettet af Clément Ronzon efter forskning og udvikling udført for GrottoCenter.org.

Særlig tak til: Roland Aigner, Alessandro Avaro, Leszek Pawlowicz, Lê Viết Thanh, Ahmed Qatar.

For spørgsmål eller forslag bedes du kontakt os.

Du kan donere til støtte dette initiativ.

Vi har brug for din hjælp!

Vi er afhængige af den generøse støtte fra TWCC-brugere til at fortsætte med at vedligeholde og forbedre dette gratis websted.
Dine penge kan gøre en forskel og støtte fonden i dag.


Sensorfusion

Ground Truth understøtter sensorfusion af point cloud-data med op til 8 videokameraindgange. Denne funktion giver menneskelige mærker mulighed for at se 3D-punktsky-rammen side om side med den synkroniserede videoramme. Ud over at give mere visuel kontekst til mærkning giver sensorfusion medarbejdere mulighed for at justere kommentarer i 3D-scenen og i 2D-billeder, og justeringen projiceres i den anden visning. Følgende video demonstrerer et 3D-point cloud-mærkningsjob med LiDAR og kamerasensorfusion.

For at få de bedste resultater, når du bruger sensorfusion, skal din punktsky være i en WCS. Ground Truth bruger din sensor (såsom LiDAR), kamera og egokøretøj udgør information til at beregne ekstrinsiske og indre matricer til sensorfusion.

Ekstrinsisk matrix

Ground Truth bruger sensor (såsom LiDAR) ekstrinsic og kamera extrinsic og iboende matricer til at projicere objekter til og fra point cloud dataets referenceramme til kameraets referenceramme.

For eksempel for at projicere en etiket fra 3D-punktskyen til kamerabilledplanet transformerer Ground Truth 3D-punkter fra LiDARs eget koordinatsystem til kameraets koordinatsystem. Dette gøres typisk ved først at transformere 3D-punkter fra LiDARs eget koordinatsystem til et verdenskoordinatsystem (eller en global referenceramme) ved hjælp af LiDAR-ekstrinsiske matrix. Ground Truth bruger derefter kameraets inverse ekstrinsic (som konverterer punkter fra en global referenceramme til kameraets referenceramme) til at omdanne 3D-punkterne fra verdens koordinatsystem opnået i det foregående trin til kameraets billedplan. LiDAR ekstrinsiske matrix kan også bruges til at omdanne 3D-data til et verdenskoordinatsystem. Hvis dine 3D-data allerede er omdannet til et verdenskoordinatsystem, har den første transformation ikke nogen indflydelse på etiketoversættelse, og etiketoversættelse afhænger kun af kameraets inverse ekstrinsic. En visningsmatrix bruges til at visualisere projicerede etiketter. For at lære mere om disse transformationer og visningsmatricen, se Ground Truth Sensor Fusion Transformations.

Ground Truth beregner disse ydre matricer ved hjælp af LiDAR og kamera udgøre data som du angiver: overskrift (i kvaternioner: qx, qy, qz og qw) og position (x, y, z). For køretøjet er kursen og positionen typisk beskrevet i køretøjets referenceramme i et verdenskoordinatsystem og kaldes a ego køretøj udgør. For hvert eksternt kamera kan du tilføje poseoplysninger til det kamera. For mere information, se Pose.

Intrinsic Matrix

Jordens sandhed bruger kameraets ydre og indre matricer til at beregne visningsmålinger til at omdanne etiketter til og fra 3D-scenen til kamerabilleder. Ground Truth beregner kameraets indre matrix ved hjælp af kameraets brændvidde (fx, fy) og optiske centerkoordinater (cx, cy), som du angiver. For mere information, se Intrinsic og Distortion.

Billedforvrængning

Billedforvrængning kan forekomme af forskellige årsager. For eksempel kan billeder være forvrængede på grund af tønde- eller fiskeøjeeffekter. Jordens sandhed bruger iboende parametre sammen med forvrængningskoeffektiv for at fordreje billeder, du giver, når du opretter 3D-punktskymærkning. Hvis et kamerabillede allerede er blevet forvrænget, skal alle forvrængningskoefficienter indstilles til 0.

For mere information om transformationer Ground Truth udfører for at forvride billeder, se Kamerakalibreringer: Ekstrinsic, Intrinsic og Distortion.

Egokøretøj

For at indsamle data til applikationer med autonome kørsler er målingerne, der bruges til at generere point cloud-data, taget fra sensorer monteret på et køretøj eller egokøretøj. For at projicere etiketjusteringer til og fra 3D-scenen og 2D-billeder har Ground Truth brug for dit egokøretøj i et verdenskoordinatsystem. Egokøretøjets udgørelse består af positionskoordinater og orienteringskvaternion.

Ground Truth bruger dit ego-køretøj til at beregne rotations- og transformationsmatricer. Rotationer i 3 dimensioner kan repræsenteres ved en sekvens på 3 rotationer omkring en aksesekvens. I teorien er tre akser, der spænder over det 3D euklidiske rum, nok. I praksis vælges rotationsakserne til at være basisvektorerne. De tre omdrejninger forventes at være i en global referenceramme (ekstrinsic). Ground Truth udgør ikke en understøttende kropscentreret referenceramme (iboende), som er knyttet til og bevæger sig med objektet under rotation. For at spore objekter skal Ground Truth måle ud fra en global reference, hvor alle køretøjer bevæger sig. Når du bruger Ground Truth 3D-markering af job med punktskyer, z angiver rotationsaksen (ekstern rotation) og yaw Euler-vinkler er i radianer (rotationsvinkel).

Ground Truth bruger poseoplysninger til 3D-visualiseringer og sensorfusion. Poseoplysninger, du indtaster gennem din manifestfil, bruges til at beregne eksterne matricer. Hvis du allerede har en ekstern matrix, kan du bruge den til at udtrække data om sensor og kamera.

I inputmanifestfilen refererer position til sensorens position i forhold til en verdensramme. Hvis du ikke er i stand til at placere enhedens position i et verdenskoordinatsystem, kan du bruge LiDAR-data med lokale koordinater. Til monterede videokameraer kan du også angive positionen og kursen i et verdenskoordinatsystem. Hvis du ikke har positionsoplysninger til kameraet, skal du bruge (0, 0, 0).

Følgende er felterne i positionsobjektet:

x (flyde) - x koordinat af egokøretøj, sensor eller kameraposition i meter.

y (float) - y-koordinat for egokøretøj, sensor eller kameraposition i meter.

z (flyde) - z-koordinat for egokøretøj, sensor eller kameraposition i meter.

Følgende er et eksempel på et JSON-objekt:

Felter i overskriftobjekt er som følger:

qx (float) - x komponent af egokøretøj, sensor eller kameraorientering.

qy (float) - y-komponent af egokøretøj, sensor eller kameraorientering.

qz (float) - z-komponent i egokøretøj, sensor eller kameraorientering.

qw (float) - w-komponent af egokøretøj, sensor eller kameraorientering.

Følgende er et eksempel på et JSON-objekt-overskrift:


Indhold

Behovet for at skelne mellem de forskellige betydninger af "referenceramme" har ført til en række forskellige udtryk. For eksempel er undertiden typen af ​​koordinatsystem knyttet som en modifikator, som i Kartesisk referenceramme. Nogle gange understreges bevægelsestilstanden som i roterende referenceramme. Nogle gange understreges den måde, hvorpå den transformeres til rammer, der betragtes som beslægtede, som i Galilensk referenceramme. Nogle gange skelnes rammer af omfanget af deres observationer, som i makroskopisk og mikroskopiske referencerammer. Ώ]

I denne artikel er udtrykket observationsramme bruges, når der lægges vægt på bevægelsestilstand snarere end på koordinatvalget eller karakteren af ​​observationer eller observationsapparater. I denne forstand tillader en observationsramme at studere effekten af ​​bevægelse på en hel familie af koordinatsystemer, der kunne være knyttet til denne ramme. På den anden side er en koordinatsystem kan anvendes til mange formål, hvor bevægelsestilstanden ikke er det primære problem. For eksempel kan et koordinatsystem vedtages for at drage fordel af et systems symmetri. I et stadig bredere perspektiv anvender formuleringen af ​​mange fysiske problemer generelle koordinater, normale tilstande eller egenvektorer, som kun er indirekte relateret til rum og tid. Det synes nyttigt at skilles fra de forskellige aspekter af en referenceramme til nedenstående diskussion. Vi tager derfor observationelle referencerammer, koordinatsystemer og observationsudstyr som uafhængige begreber, adskilt som nedenfor:

  • En observationsramme (såsom en inerti-ramme eller ikke-inertial referenceramme) er et fysisk begreb relateret til bevægelsestilstand.
  • Et koordinatsystem er et matematisk koncept, der svarer til et sprogvalg, der bruges til at beskrive observationer. & # 912 & # 93 Derfor kan en observatør i en observationsramme vælge at anvende ethvert koordinatsystem (kartesisk, polær, krumlinjet, generaliseret, ...) til at beskrive observationer foretaget fra denne referenceramme. En ændring i valget af dette koordinatsystem ændrer ikke en observatørs bevægelsestilstand og medfører derfor ikke en ændring i observatørens observationsmæssig referenceramme. Dette synspunkt kan også findes andre steder. & # 913 & # 93 Hvilket ikke er til at bestride, at nogle koordinatsystemer kan være et bedre valg for nogle observationer end andre er.
  • Valg af, hvad der skal måles, og med hvilket observationsapparat er et spørgsmål adskilt fra observatørens bevægelsestilstand og valg af koordinatsystem.

Her er et tilbud, der gælder for bevægelige observationsrammer [matematik] displaystyle < mathfrak> [/ matematik] og forskellige tilknyttede euklidiske koordinatsystemer med tre rum [R, R ′, etc.]: Β]

Vi introducerer først forestillingen om referenceramme, i sig selv relateret til ideen om observatør: referencerammen er på en eller anden måde det "euklidiske rum båret af observatøren". Lad os give en mere matematisk definition: ... referencerammen er. sættet af alle punkter i det euklidiske rum med observatørens stive kropsbevægelse. Rammen betegnes [matematik] displaystyle < mathfrak> [/ matematik] siges at bevæge sig med observatøren ... Partiklernes rumlige positioner er mærket i forhold til en ramme [matematik] displaystyle < mathfrak> [/ matematik] ved at etablere en koordinatsystem R med oprindelse O. Det tilsvarende sæt akser, der deler den stive kropsbevægelse af rammen [matematik] displaystyle < mathfrak> [/ matematik], kan betragtes som en fysisk realisering af [matematik] displaystyle < mathfrak> [/ matematik]. I en ramme [matematik] displaystyle < mathfrak> [/ matematik], koordinater ændres fra R til R ′ ved at udføre, på hvert øjeblik af tid, den samme koordinatransformation på komponenterne i iboende objekter (vektorer og tensorer) indført for at repræsentere fysiske størrelser i denne ramme.

og dette om nytten af ​​at adskille forestillingerne om [matematik] displaystyle < mathfrak> [/ matematik] og [R, R ′, etc.]: Γ]

Som bemærket af Brillouin skal der skelnes mellem matematiske koordinatsæt og fysiske referencerammer. Uvidenheden om en sådan skelnen er kilden til meget forvirring ... de afhængige funktioner som f.eks. Hastighed måles i forhold til en fysisk referenceramme, men man kan frit vælge ethvert matematisk koordinatsystem, hvor ligningerne er specificeret.

og dette også på sondringen mellem [matematik] displaystyle < mathfrak> [/ matematik] og [R, R ′, etc.]: Δ]

Idéen med en referenceramme er virkelig en helt anden end et koordinatsystem. Rammer adskiller sig lige når de definerer forskellige mellemrum (sæt af hvile point) eller tidspunkter (sæt samtidige begivenheder). Så ideerne om et rum, en tid, hvile og samtidighed, går uløseligt sammen med rammens. Imidlertid resulterer et simpelt oprindelsesskift eller en rent rumlig rotation af rumkoordinater i et nyt koordinatsystem. Så rammer svarer i bedste fald til klasser af koordinatsystemer.

I traditionelle udviklinger af særlig og generel relativitet har det været almindeligt ikke at skelne mellem to helt forskellige ideer. Den første er forestillingen om et koordinatsystem, simpelthen forstået som den glatte, inverterbare tildeling af fire tal til begivenheder i rumtids kvarterer. Det andet, referencerammen, henviser til et idealiseret system, der bruges til at tildele sådanne numre [...] For at undgå unødvendige begrænsninger kan vi skille dette arrangement fra metriske forestillinger. [...] Af særlig betydning for vores formål er, at hver referenceramme har en bestemt bevægelsestilstand ved hver begivenhed i rumtiden. [...] Inden for den særlige relativitetsteori, og så længe vi begrænser os til referencerammer i inerti-bevægelse, afhænger ikke meget betydning af forskellen mellem en inertial referenceramme og det inertiale koordinatsystem, den inducerer. Denne behagelige situation ophører med det samme, når vi begynder at overveje referencerammer i ikke-ensartet bevægelse, selv inden for særlig relativitet ... Mere for nylig for at forhandle om de åbenlyse uklarheder ved Einsteins behandling er begrebet referenceramme igen dukket op som en struktur, der adskiller sig fra et koordinatsystem .

Diskussionen tages ud over enkle rum-tid-koordinatsystemer af Brading og Castellani. & # 918 & # 93 Udvidelse til at koordinere systemer ved hjælp af generaliserede koordinater ligger til grund for de Hamiltonian og Lagrangian formuleringer & # 919 & # 93 af kvantefeltteori, klassisk relativistisk mekanik og kvantegravitation. & # 9110 & # 93 & # 9111 & # 93 & # 9112 & # 93 & # 9113 & # 93 & # 9114 & # 93

Koordinatsystemer

Selvom udtrykket "koordinatsystem" ofte bruges (især af fysikere) i ikke-teknisk forstand, har udtrykket "koordinatsystem" en præcis betydning i matematik, og nogle gange er det også, hvad fysikeren mener.

Et koordinatsystem i matematik er en facet af geometri eller af algebra, specielt & # 9115 & # 93 & # 9116 & # 93, en egenskab af manifolder (for eksempel i fysik, konfigurationsrum eller faserum). & # 9117 & # 93 & # 9118 & # 93 Koordinaterne for et punkt r i en n-dimensionalt rum er simpelthen et ordnet sæt af n numre: & # 9119 & # 93 & # 9120 & # 93

[matematik] displaystyle < mathbf= [x ^ 1, x ^ 2, prikker, x ^ n]. > [/ matematik]

I et generelt Banach-rum kunne disse tal være (for eksempel) koefficienter i en funktionel udvidelse som en Fourier-serie. I et fysisk problem kunne de være rumtidskoordinater eller amplituder i normal tilstand. I et robotdesign kan de være vinkler af relative rotationer, lineære forskydninger eller deformationer af samlinger. & # 9121 & # 93 Her antager vi, at disse koordinater kan relateres til et kartesisk koordinatsystem ved hjælp af et sæt funktioner:

hvor x, y, z, etc. er de n Kartesiske koordinater for punktet. I betragtning af disse funktioner, koordinere overflader er defineret af forholdene:

Skæringspunktet mellem disse overflader definerer koordinatlinjer. På ethvert valgt punkt definerer tangenter til de krydsende koordinatlinjer på det punkt et sæt af basisvektorer <e1, e2, …, en> på det tidspunkt. Det vil sige: & # 9122 & # 93

[matematik] displaystyle < mathbf_i ( mathbf) = lim_ < epsilon rightarrow 0> frac < mathbf venstre (x ^ 1, prikker, x ^ i + epsilon, prikker, x ^ n højre) - mathbf left (x ^ 1, prikker, x ^ i, prikker, x ^ n højre)> < epsilon>, quad i = 1, prikker, n,> [/ matematik ]

som kan normaliseres til at være af enhedslængde. For flere detaljer se krumlinjære koordinater.

Koordinatoverflader, koordinatlinjer og basisvektorer er komponenter i en koordinatsystem. & # 9123 & # 93 Hvis basisvektorerne er ortogonale på hvert punkt, er koordinatsystemet et ortogonalt koordinatsystem.

Et vigtigt aspekt af et koordinatsystem er dets metriske tensor gik, som bestemmer buelængden ds i koordinatsystemet med hensyn til dets koordinater: & # 9124 & # 93

hvor gentagne indeks opsummeres.

Som det fremgår af disse bemærkninger, er et koordinatsystem en matematisk konstruktion, en del af et aksiomatisk system. Der er ingen nødvendig forbindelse mellem koordinatsystemer og fysisk bevægelse (eller ethvert andet aspekt af virkeligheden). Koordinatsystemer kan dog omfatte tid som en koordinat og kan bruges til at beskrive bevægelse. Således kan Lorentz-transformationer og galileiske transformationer ses som koordinattransformationer.

Generelle og specifikke emner for koordinatsystemer kan forfølges ved at se Se også nedenstående links.

Observationsmæssige referencerammer

En observationsramme, ofte omtalt som en fysisk referenceramme, a referenceramme, eller simpelthen en ramme, er et fysisk koncept relateret til en observatør og observatørens bevægelsestilstand. Her vedtager vi den opfattelse, som Kumar og Barve har udtrykt: en observationsramme er karakteriseret kun ved sin bevægelsestilstand. & # 9125 & # 93 Der mangler dog enstemmighed på dette punkt. I særlig relativitet skelnes der undertiden mellem en observatør og en ramme. Ifølge denne opfattelse er a ramme er en observatør plus et koordinatgitter konstrueret til at være et ortonormalt højrehånds sæt af rumlignende vektorer vinkelret på en tidlignende vektor. Se Doran. & # 9126 & # 93 Denne begrænsede opfattelse bruges ikke her og er ikke universelt vedtaget selv i diskussioner om relativitet. & # 9127 & # 93 & # 9128 & # 93 Generel relativitet er brugen af ​​generelle koordinatsystemer almindelig (se for eksempel Schwarzschild-løsningen til tyngdefeltet uden for en isoleret sfære & # 9129 & # 93).

Der er to typer observationsreferenceramme: inerti og ikke-inerti. En inertial referenceramme er defineret som en, hvor alle fysiske love antager deres enkleste form. I særlig relativitet er disse rammer relateret til Lorentz-transformationer, som parametriseres af hurtighed. I Newtons mekanik kræver en mere begrænset definition kun, at Newtons første lov gælder, det vil sige, en Newtons inertial ramme er en, hvor en fri partikel bevæger sig i en lige linje med konstant hastighed eller er i ro. Disse rammer er relateret til galileiske transformationer. Disse relativistiske og newtonske transformationer udtrykkes i rum med generel dimension i form af repræsentationer af Poincaré-gruppen og den galileiske gruppe.

I modsætning til inertialrammen er en ikke-inertial referenceramme en, hvor fiktive kræfter skal påberåbes for at forklare observationer. Et eksempel er en observationsramme, der er centreret på et punkt på jordens overflade. Denne referenceramme kredser omkring midten af ​​Jorden, som introducerer de fiktive kræfter kendt som Coriolis-kraften, centrifugalkraften og tyngdekraften. (Alle disse kræfter, herunder tyngdekraften, forsvinder i en virkelig inerti-referenceramme, som er en af ​​frit fald.)

Måleudstyr

Et yderligere aspekt af en referenceramme er målene til måleudstyret (f.eks. Ure og stænger), der er fastgjort til rammen (se Norton-citatet ovenfor). Dette spørgsmål behandles ikke i denne artikel og er af særlig interesse i kvantemekanik, hvor forholdet mellem observatør og måling stadig er under diskussion (se måleproblem).

I fysikeksperimenter kaldes referencerammen, hvori laboratoriemåleinstrumenterne er i ro, normalt laboratorierammen eller blot "laboratorieramme." Et eksempel ville være rammen, hvor detektorerne til en partikelaccelerator er i ro. Laboratorierammen i nogle eksperimenter er en inerti-ramme, men det kræves ikke at være (for eksempel er laboratoriet på Jordens overflade i mange fysiske eksperimenter ikke inertialt). I partikelfysikeksperimenter er det ofte nyttigt at transformere energier og momenta af partikler fra laboratorierammen, hvor de måles, til centrum af momentumrammen "COM-ramme", hvor beregninger undertiden forenkles, da potentielt al kinetisk energi stadig findes i COM-rammen kan bruges til fremstilling af nye partikler.

I denne forbindelse kan det bemærkes, at de ure og stænger, der ofte bruges til at beskrive observatørers måleudstyr i tanke, i praksis erstattes af en langt mere kompliceret og indirekte metrologi, der er forbundet med vakuumets natur og bruger atomure, der fungerer efter standardmodellen, og det skal korrigeres for tyngdetidstidsudvidelse. & # 9130 & # 93 (Se sekund, meter og kilogram).

Faktisk følte Einstein, at ure og stænger kun var hensigtsmæssige måleinstrumenter, og de skulle erstattes af mere grundlæggende enheder baseret på for eksempel atomer og molekyler. & # 9131 & # 93


Geodetisk datum

Begrebet geoid og ellipsoid kan bedre forstås gennem figuren 1. Til de fleste praktiske anvendelser foretrækkes ellipsoide koordinatsystemer især til vandrette koordinater i geodetiske netværk, fordi de nærmer sig jordoverfladen. Vinklen? mellem retningerne af den ellipsoide normale og lodlinjen ved punkt P kaldes lodret afbøjning. Et globalt ellipsoidalt system

er relateret til reference ellipsoid system, der passer til jordoverfladen som helhed. Oprindelsen af ​​ellipsoiden formodes at falde sammen med geocentret. Sættet af parametre, der beskriver forholdet mellem en bestemt lokal ellipsoid og et globalt geodetisk referencesystem kaldes geodetisk nulpunkt. Et geodetisk datum defineres ved hjælp af et sæt parametre afhængigt af omfanget af hensynet til ellipsoidens parametre. De mest betydningsfulde parametre, der skal overvejes, er e, f,? X, ? Y og? Z. Her er 'e' semi-hovedakse for ellipsoid, fis fladningsparameter, og? X,? Y og? Z er koordinaterne for den ellipsoide oprindelse (oversættelsesparametre eller datumforskydningsparametre) med hensyn til geocentret. De repræsenterer en gennemsnitlig position for det bestemte lokale system i forhold til det geocentriske system. Til ? X, ? Y og? Z lig med nul, kaldes det geodetiske nulpunkt et absolut nulpunkt. Her ignoreres de tre rotationsparametre. Antallet af nulpunktsdefinitionsparametre stiger, når nulpunktsinformationen stammer fra satellitbaner. I et sådant tilfælde udgør koefficienterne for jordens tyngdefelt, konstanterne af jordrotation, geocentrisk tyngdekonstant en del af nulpunktsdefinitionen. WGS 84 er et eksempel på et sådant geodetisk datum. Til ? X, ? Y og? Z lig med nul, kaldes det geodetiske nulpunkt et absolut nulpunkt. Parametrene for WGS 84 baseret på kontinuerlig evaluering er som følger:

Halv hovedakse e = 6.378.137 meter

Fladningsparameter f = 1 / 298.257223563

Perioden fra 1980'erne og fremefter har medført nyttig udvikling inden for satellitgeodesi. Dette har resulteret i operationel brug af satellitteknikker inden for geodesi, geodynamik og landmåling. Denne proces startede med NAVSTAR GPS.


Udgave med oversættelse af verdens koordinatsystem til kartesisk koordinat - astronomi

Når et punkt eller toppunkt er defineret i scenen og er synligt for øjet eller kameraet, vises det i billedet som en prik (eller mere præcist en pixel, hvis billedet er et digitalt). Vi har allerede talt om perspektivprojektionsprocessen, der bruges til at konvertere placeringen af ​​det punkt i 3D-rummet til en position på billedets overflade. Men denne position udtrykkes ikke i form af pixelkoordinater. Så hvordan finder vi faktisk de endelige 2D-pixelkoordinater for det projicerede punkt i billedet? I dette kapitel gennemgår vi hele processen, hvorved punkter konverteres fra deres oprindelige verdensposition til deres endelige rasterposition (deres position i billedet i form af pixelkoordinater).

Verdenskoordinatsystem og verdensrum

Når et punkt først defineres i scenen, siger vi, at dets koordinater er defineret i verdensrum: koordinaterne for dette punkt er defineret med hensyn til et globalt eller verdens kartesisk koordinatsystem. Koordinatsystemet har en oprindelse, der kaldes verdens oprindelse og koordinaterne for ethvert punkt, der er defineret i det pågældende rum, defineres med hensyn til den oprindelse (det punkt, hvis koordinater er [0,0,0]). Point defineres i verdensrummet (figur 4).

4x4 Matrix visualiseret som et kartesisk koordinatsystem

Lad os nu overveje kameraet, men inden vi gør det, lad os tale om et koncept i CG, som er meget vigtigt. Som du ved, kan objekter i 3D transformeres ved hjælp af en af ​​de tre følgende operatorer: oversættelse, rotation og skala. Hvis du husker, hvad vi sagde i lektionen dedikeret til geometri, kan lineære transformationer (med andre ord enhver kombination af en af ​​disse tre operatorer) repræsenteres af en 4x4 matrix. Hvis du ikke er sikker på hvorfor og hvordan dette fungerer, skal du læse lektionen om geometri igen og især de følgende to kapitler: Hvordan fungerer matrix del 1 og del 2. Husk at de første tre koefficienter langs diagonalen koder for skalaen (koefficienterne c00 , c11 and c22 in the matrix below), the first three values of the last row encode the translation (the coefficients c30, c31 and c32 &mdash assuming you use the row-major order convention) and the 3x3 upper-left inner matrix encodes the rotation (the red, green and blue coefficients).

It might be difficult when you look at the coefficients of a matrix (the actual numbers) to know exactly what the scaling or rotation values are because rotation and scale are sort of combined within the first three coefficients along the diagonal of the matrix. So let's ignore scale for now, and only focus on rotation and translation. As you can see we have nine coefficients that represent a rotation. But how can we interpret what these nine coefficients are? So far, we looked at matrices. But let's now consider what coordinate systems are and by connecting the two together - matrices and coordinate systems - we will answer this question.

Figure 4: coordinates systems translation and axes coordinates are defined with respect to the world coordinate system (a right-handed coordinate system is used).

The only Cartesian coordinate system we talked about so far, is the world coordinate system. This coordinate system is a convention used to define the coordinates [0,0,0] in our 3D virtual space and three unit axes orthogonal to each other (figure 4). It's the prime meridian of a 3D scene, a reference to which any other point or any other arbitrary coordinate system is measured to. Once this coordinate system is defined, we can create other Cartesian coordinate systems and as with points, these coordinates systems are defined by a position in space (a translation value) but also by three unit axes or vectors orthogonal to each other (which by definition what Cartesian coordinate systems are). Both the position and the values of these three unit vectors are defined with respect to the world coordinate system as depicted in figure 4.

The coordinates from figure 4, are, in purple, the position , and in red , green and blue , the coordinates of the x- y- and z-axis of an arbitrary coordinate system (which are all defined with respect to the world coordinate system). Note that the axes making up this arbitrary coordinates system are unit vectors.

The upper-left 3x3 matrix of our 4x4 matrix is actually nothing else than the coordinates of our arbitrary coordinate system's axes. We have three axes, each with three coordinates which makes nine coefficients. If the 4x4 matrix stores its coefficients using the row-major order convention (this is the convention used by Scratchapixel), then:

  • the first three coefficients of the matrix first row ( c00, c01, c02 ), correspond to the coordinates of the coordinate system x-axis ,
  • the first three coefficients of the matrix second row ( c10, c11, c12 ), are the coordinates of the coordinate system y-axis ,
  • the first three coefficients of the matrix third row ( c20, c21, c22 ), are the coordinates of the coordinate system z-axis ,
  • the first three coefficients of the matrix fourth row ( c30, c31, c32 ), are the coordinates of the coordinate system position (translation values).

Here is for example the transformation matrix corresponding to the coordinate system of figure 4:

In conclusion, we can say that a 4x4 matrix actually represents a coordinate system (or reciprocally that any Cartesian coordinate system can be represented by a 4x4 matrix). It's really important that you always see a 4x4 matrix as nothing else than a coordinate system and vice versa (we also sometimes speak of a "local" coordinate system in reference to the "global" coordinate system which in our case, is the world coordinate system).

Local vs. Global Coordinate System

Figure 5: a global coordinate system such as longitude/latitude coordinates can be used to locate a house. We can also locate a house using a numbering system in which the first house defines the origin of a local coordinate system. Note that the local coordinate system "coordinate" can also be defined with respect to the global coordinate system (i.e. in terms of longitude/latitude coordinates).

Now that we have established how a 4x4 matrix can be interpreted (and introduced the concept of local coordinate system), let's recall what local coordinate systems are used for. By default, the coordinates of a 3D point are defined with respect to the world coordinate system. The world coordinate system though, is just one among an infinity of possible coordinate systems. But we need a coordinate system to measure all things against by default, so we created one and gave it the special name of "world coordinate system" (it is a convention, like the Greenwich meridian, the meridian at which longitude is defined to be 0). Having one reference is good but not always the best way of keeping track of where things are in space. For instance, imagine you are looking for a house on a street. If you know the longitude and latitude coordinates of that house, you can always use a GPS to find it. However, if you already are on the street where the house is situated, getting to this house using its number is simpler and quicker than using a GPS. A house number is nothing else than a coordinate defined with respect to a reference, the first house on the street. In this example the street numbers can be seen as a local coordinate system (while they can be defined with respect to a global coordinate system, they have their own coordinates with respect to a local reference, the first house on the street), while the longitude/latitude coordinate system can be seen as a global coordinate system. Local coordinate system are useful to "find" things when you put "yourself" within the frame of reference in which these things are defined (for example when you are on the street itself). Note that the local coordinate system can itself be defined with respect to the global coordinate system (for instance we can define its origin in terms of latitude/longitude coordinates).

Things are the same in CG. It's always possible to know where things are with respect to the world coordinate system, but to simplify calculations, it is often convenient to define things with respect to a local coordinate system (we will show this with an example further down). This what "local" coordinate systems are used for.

Figure 6: coordinates of a vertex defined with respect to the object local coordinate system and to the world coordinate system.

When you move a 3D object in a scene such as a 3D cube for instance (but this is true regardless of the object shape or complexity), transformations applied to that object (translation, scale, rotation) can be represented by what we call a 4x4 transformation matrix (it is nothing more than a 4x4 matrix but since it's used to change the position, scale and rotation of that object in space, we call it a transformation matrix). This 4x4 transformation matrix can be seen as the object local frame of reference or local coordinate system. In a way, you don't really transform the object, but transform the local coordinate system of that object, but since the vertices making up the object are defined with respect to that local coordinate system, moving the coordinate system moves the object's vertices with it (see figure 6). It's important to understand that we don't explicitly transform that coordinate system. We translate, scale and rotate the object, these transformation are represented by a 4x4 matrix, and this matrix can be visualised as a coordinate system.

Transforming Points from One Coordinate System to Another

Note that even though the house is the same, the coordinates of the house depending on whether you use its address or it's longitude/latitude coordinates, are different (as they relate to the frame of reference in which the location of the house is defined). Look at the highlighted vertex in figure 6. The coordinates of this vertex in the local coordinate system are [-0.5,0.5,-0.5]. But in "world space" (when the coordinates are defined with respect to the world coordinate system), the coordinates are [-0.31,1.44,-2.49]. Different coordinates, same point.

As suggested before, it is sometimes more convenient to operate on points when they are defined with respect to a local coordinate system rather than defined with respect to the world coordinate system. For instance, in the example of the cube (figure 6), defining the corners of the cube in local space is easier than in world space. But how do we convert a point or vertex from one coordinate system (such as the world coordinate space) to another (converting points from a coordinate system to another is a very common process in CG)? That's easy. If we know the 4x4 matrix M that transforms a coordinate system A into a coordinate system B, then if we transform a point whose coordinates are originally defined with respect to B with the inverse of M (we will explain next why we use the inverse of M rather than M), we get the coordinates of P with respect to A. Let's try with a real example. The matrix M in figure 6 transforming the local coordinate system to which the cube is attached to, is:

Figure 7: to transform a point which is defined in the local coordinate system to world space, we multiply the point local coordinates by M (in 7a the coordinate systems coincide. They have been shifted slightly to make them visible).

By default, the local coordinate system coincides with the world coordinate system (the cube vertices are defined with respect to this local coordinate system). This is illustrated in figure 7a. Then, we apply the matrix M to the local coordinate system, which has for effect to change its position, scale and rotation (this obviously depends on the matrix values). This is illustrated in figure 7b. So before we apply the transform, the coordinates of the highlighted vertex in figure 6 and 7 (the purple dot) are the same in both coordinates systems (since the frames of reference coincide). But after transformation, the world and local coordinates of the points are different (figure 7a and 7b). To calculate the world coordinates of that vertex we need to multiply the point original coordinates by the local-to-world matrix: we call it local-to-world because it defines the coordinate system with respect to the world coordinate system. This is pretty logical! If you transform the local coordinate system and if you want the cube to move with this coordinate system, you need to apply to the cube vertices the same transform than the one applied to the local coordinate system:

Obviously, if you now want to go the other way around (to get the point "local coordinates" from its "world coordinates") you need to transform the point world coordinates with the inverse of M:

The inverse of M is also called the world-to-local coordinate system (it defines where the world coordinate system is with respect to the local coordinate system frame of reference):

Let's check that it actually works. Coordinates of the highlighted vertex in local space are [-0.5,0.5,0.5] and in world space: [-0.31,1.44,-2.49]. We also know the matrix M (local-to-world). If we apply this matrix to the point local coordinates, we should obtain the point's world coordinates:

Let's implement and check the results (you can use the code from the Geometry lesson):


Representations of World Coordinates in FITS

The computation of the coordinates associated with each pixel is broken into three steps, a correction for arbitrary small image distortions, a linear transformation (including rotation, scale and skew), and transformation from intermediate world coordinates to the required world coordinate system via a predefined algorithm. These steps and the FITS header keywords used to define them are illustrated in Figure 1. The pixel regularization correction is encoded in an image extension and accounts for small distortions which can't easily be described by other means. It will often be omitted by FITS writers and may be ignored when present by many FITS readers. The linear transformation is done with a translation specified by the familiar CRPIX i followed by a matrix multiplication specified by CD j _ i keywords. The resulting ``intermediate world coordinates'' are in physical units (e.g., deg, m/s), but require conversion via a predefined linear or non-linear algorithm into the final world coordinate system. The algorithm and final coordinates are selected by the two halves of the CTYPE j header keywords, parameters are given via the CRVAL j and, if needed, PV j _ m keywords, and the units are specified with CUNIT j keywords. Additional header keywords may be defined as needed to further describe the coordinates. The old CDELT i and CROTA i header keywords are no longer used. The coordinates for integer voxel numbers refer to the center of the voxel, the only location within an individual voxel that is invariant to rotation and transposition.

In some cases, an image may be described by more than one set of coordinates. For example, spectral axes may be described by frequency, wavelength, and velocity (only one of which might be linear) and spatial axes may be described, for example, by position in the telescope focal plane in meters as well as in degrees on the sky. To permit up to 26 secondary coordinate descriptions, a version code may be appended to each of the standard header keywords (e.g., CRVAL27Q ). These codes are the letters A through Z , with the blank character being reserved for the primary version. If an alternate coordinate description is specified, all coordinate keywords for that version must be given even if they do not differ from those of the primary version. Note that this convention (and the CD j _ i keyword) reduce the maximum axis number from 999 to a more reasonable 99.

Paper I contains a detailed proposal for a new IAU standard for the representation of units when they must appear in plain character form. This proposal is a merger and clarification of the systems devised by George & Angelini (1995) and Ochsenbein et al. (1996) and is a supplement to the IAU Style Manual (1988) which defines units as they would appear in a published document.

Image data are represented in FITS not only in the primary array and in an IMAGE extension, but also in a multi-dimensional vector in a single element of a FITS binary table and a tabulated list of pixel coordinates in a FITS ASCII or binary table. Keywords to specify the coordinates of such data are given in appendices to Papers I, II, and III and, for the primary coordinate description, match those already in use by some software systems.

Paper II applies the general formalism of Paper I to the problem of representing celestial coordinate systems. With detailed mathematical formulæ, it covers all (24) spherical map projections likely to be of interest in astronomy including zenithal, cylindrical, pseudo-cylindrical, conic, polyconic, pseudo-conic, and quad-cube projections. The familiar gnomonic or `` -TAN '' projection is extended to allow up to 80 parameters to describe a full astrometric solution to the distortions in a photographic or CCD image. The projections support terrestrial and planetary mapping as well as celestial mapping. Several examples of header interpretation are provided and header construction is exemplified by cases taken from full-sky imagery, the Digitized Sky Survey, a long-slit spectrograph image, and an image of the Moon. The major celestial coordinate systems are supported including generalized longitude-latitude pairs and a new keyword RADECSYS is defined to specify the coordinate system (i.e. 'FK4' , 'FK5' ).

In the computation of celestial coordinates, ``intermediate world coordinates'' are identified with Cartesian coordinates in the plane of projection. The computation of world coordinates then requires first de-projection of the Cartesian coordinates to obtain ``native spherical coordinates'' and then spherical coordinate transformation with rotation angles defined by CRVAL j and new LONPOLE and LATPOLE keywords. The native coordinate system is the one in which the projection is most conveniently defined and the reference values in the desired system must correspond to the ``reference point'' of the projection. This is fixed for each class of projection. Oblique projections are generated naturally in this fashion as illustrated in Figure 2.

The coordinates of Paper II are supported by the WCSLIB software package (Calabretta 1999) available without charge under GNU licensing.

Paper III extends the methods of Papers I and II to represent frequency, wavelength, and velocity including the radio, optical and redshift conventional velocities. Conversion formulæ for data measured in any one of these and expressed in any one of these are given. Provision is made for higher order pixel corrections. Keywords are defined to specify velocity coordinate reference frames and any parameters needed to switch between them. Methods to describe the dependence of spectral coordinates on celestial coordinates are given for velocity reference frames and for instruments similar to Fabry-Perot interferometers. It is noted that objective prism data, in which one spectral and two spatial axes are mingled on a two-dimensional image, cannot be described by the methods of Papers I and III. When these data are reduced to tabular form, they are easily described by the conventions presented in all three papers for such data.

Referencer

Calabretta, M. 1999, WCSLIB , Version 2.4, located at
ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib.tar.gz .

George, I. M. &Angelini, L. 1995, Specification of Physical Units within OGIP FITS files, OGIP Memo OGIP/93-001, NASA Goddard Space Flight Center, Greenbelt, Maryland,
ftp://fits.cv.nrao.edu/fits/wcs/OGIP93_001.ps

Greisen, E. W. 1983, AIPS Memo No. 27, National Radio Astronomy Observatory, Charlottesville, Virginia

IAU Style Manual 1983, IAU Inf. Bull. , No. 49, 14.

Ochsenbein, F., Paul, N., & Kuin, M. 1996, Standards for Astronomical Catalogues, Version 1.5, http://vizier.u-strasbg.fr/doc/catstd.htx

Wells, D. C., Greisen, E. W., & Harten, R. H. 1981, A&AS, 44, 363


4 Answers 4

You can normalize the first value, this will give you a value in the [0,1] range. You can think of that as X percentage, the percentage the value maps to between the minimum and maximum values. Then you can find where that percentage belongs in your destination coordinate system by seeing what value is X percentage through the destination system. I'll use Java code as an example language, I'm sure the concepts are clear enough to translate to any language though.

Using your example you'd input:

Then find where it lays in the destination system. With something like

So for example with an x value of 1000 you'd map that to your destination coordinate system to 467.29 .

Alternatively, if the coordinate systems will always be the same, you can pre-compute the ratio between them.


Cartesian coordinates and transformation matrices

If you’re doing any work in 3D, you will need to know about the Cartesian coordinate system and transformation matrices. Cartesian coordinates are typically used to represent the world in 3D programming. Transformation matrices are matrices representing operations on 3D points and objects. The typical operations are translation, rotation, scaling.

2 dimensional Cartesian coordinates

You should have seen something like this in your math class:


[original image]

The Roman letters I, II, III, and IV represent the quadrants of the Cartesian plane. For example, III represents the third quadrant. Not a lot to say here, so moving on…

3 dimensional Cartesian coordinates

And for 3 dimensions, we have this:


[original image]

I don’t quite like the way the z-axis points upward. The idea probably stems from having a piece of paper representing the 2D plane formed by the x and y axes. The paper is placed on a flat horizontal table, and the z-axis sticks right up.

Mathematically speaking, there’s no difference.

However, I find it easier to look at it this way:

The XY Cartesian plane is upright, representing the screen. The z-axis simply protrudes out of the screen. The viewport can cover all four quadrants of the XY plane. The illustration only covered the first quadrant so I don’t poke your eye out with the z-axis *smile*

There is also something called the right-hand rule, and correspondingly the left-hand rule. The right-hand rule has the z-axis pointing out of the screen, as illustrated above. The left-hand rule has the z-axis pointing ind i the screen. Observe the right-hand rule:

The thumb represents the x-axis, the index finger represents the y-axis and the middle finger represents the z-axis. As for the left-hand rule, we have:

We’re looking at the other side of the XY plane, but it’s the same thing. The z-axis points in the other direction. And yes, I have long fingers. My hand span can cover an entire octave on a piano.

What’s the big deal? Because your 3D graphics engine might use a certain rule by default, and you must follow. Otherwise, you could be hunting down errors like why an object doesn’t appear on the screen. Because the object was behind the camera when you thought it’s in front. Your selected graphics engine should also allow you to use the other rule if you so choose.

In case you’re wondering, here’s the right-hand rule illustration with the z-axis pointing upwards:

I still don’t like a skyward-pointing z-axis. It irks me for some reason…

Scaling (or making something larger or smaller)

So how do you enlarge or shrink something in 3D? You apply the scaling matrix. Let’s look at the 2D version:

If your scaling factor is greater than 1, you’re enlarging an object. If your scaling factor is less than 1, you’re shrinking an object. What do you think happens when your scaling factor is 1? Or when your scaling factor is negative?

So how does the scaling factor look like in a scaling matrix?

If you don’t know what that means, or don’t know what the result should be like, review the lesson on matrices and the corresponding program code.

You will notice there are separate scaling factors for x- and y- axes. This means you can scale them independently. For example, we have this:

And we only enlarge along the x-axis:

We can also only enlarge along the y-axis:

Yeah, I got tired of drawing 2D pictures, so I decided to render some 3D ones. Speaking of which, you should now be able to come up with the 3D version of the scaling matrix. Hint: just add a scaling factor for the z-axis.

Rotating (or spinning till you puke)

This is what a rotation matrix for 2 dimensions looks like:

That symbol that looks like an O with a slit in the middle? That’s theta (pronounced th-ay-tuh), a Greek alphabet. It’s commonly used to represent unknown angles.

I’ll spare you the mathematical derivation of the formula. Just use it.

You can convince yourself with a simple experiment. Use the vector (1,0), or unit vector lying on the x-axis. Plug in 90 degrees for theta and you should get (0,1), the unit vector lying on the y-axis.

That’s anti-clockwise rotation. To rotate clockwise, just use the value with a change of sign. So you’ll have -90 degrees.

Depending on the underlying math libraries you use, you might need to use radians instead of degrees (which is typical in most math libraries). I’m sure you’re clever enough to find out the conversion formula for degree-to-radian yourself…

Now for the hard part. The 3D version of rotation is … a little difficult. You see, what you’ve read above actually rotates about the implied z-axis. Wait, that means you can rotate about the x-axis! And the y-axis! Sacrebleu! You can rotate about any arbitrary axis!

I’ll write another article on this. If you’re into this, then you might want to take a look at this article on 3D rotation. I’ll also touch on a concept where you rotate about one axis and then rotate about another axis. Be prepared for lots of sine’s and cosine’s in the formula. Stop weeping it’s unseemly of you.

Translating (nothing linguistic here)

What it means is you’re moving points and objects from one position to another. Let’s look at a 1 dimensional example:

The squiggly unstable looking d-wannabe? It’s the Greek alphabet delta. Delta-x is a standard notation for “change in x”. In this case “x” refers to distance along the x-axis. We’ll use an easier-to-type version called “dx” for our remaining discussion.

In 2 dimensions, we have the corresponding dy, for “change in y”. Note that there’s no stopping you from using negative values for dx or dy. In the illustration above, dx and dy are negative.

You’ll have to imagine the case for 3D because the diagram is likely to be messy. But it’s easy to visualise. You just do the same for z-axis.

So what’s the transformation matrix for translation? First, you need to extend your matrix size and vector size by one dimension. The exact reasons are due to affine transformations and homogeneous coordinates (I’ve mentioned them briefly earlier).

Consider this: You have a point (x,y,z) and you want it to be at the new position (x + dx, y + dy, z + dz). The matrix will then look like this:

Notice that for scaling, the important entries are the diagonal entries. For rotation, there are sine’s and cosine’s and they’re all over the place. But for translation, the “main body” of the matrix is actually an identity matrix. The fun stuff happens in the alleyway column on the extreme right of the matrix.

That reminds me. Because you’ll be using all the transformation matrices together, all matrices must be of the same size. So scaling and rotation matrices need to be 4 by 4 too. Just extend them with zero entries except the bottom right entry, which is 1.

Conclusion

We talked about 2D and 3D Cartesian coordinates. I’ve also shown you the right-hand and left-hand rules. This forms the basis for learning basic transformations such as scaling, rotation and translation.

There are two other interesting transformation matrices: shearing and reflection. I thought what we have is good enough for now. You are free to do your own research. When the situation arise, I’ll talk about those two transformations.

If you enjoyed this article and found it useful, please share it with your friends. You should also subscribe to get the latest articles (it’s free).


Se videoen: Koordinatsystemet (Oktober 2022).