sinusoïde projectie van een lijnstuk berekenen?

Wiskunde is niet alleen een vak op school. Kom je ergens in de praktijk (bijvoorbeeld tijdens je werk) een wiskundig probleem tegen dan kun je hier om hulp vragen.
Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 09 jun 2020, 06:41

Nog een aanvullende vraag: Als ik een bol herleid tot een projectie van kubuszijden (zogeheten cube-mapping in sommige programma's), en ik wil de diagonalen vanuit het middelpunt van dat vierkant (eigenlijk de vluchtlijnen van het perspectief) tekenen als een sinusoïde projectie, hoe moet ik de bovenstaande formule uit voorgaand antwoord dan interpreteren? Want je kan dus het vierkant verdelen in kwadranten, en de middellijn is dus de X-as (nulmeridiaan van de bol) en de Y-as is de evenaar. Worden die vluchtlijnen dan weergegeven door een asin? Of een acos? Dit zou handig zijn want dan ik een afbeelding van een vierkant volledig als een sinusprojectie tekenen.

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door arie » 13 jun 2020, 17:14

Afbeelding
De basis voor een cube mapping is een vlakke projectie van het aardoppervlak:
De lengte- en breedte-graden vormen hier een vierkant rooster,
horizontaal (langs de evenaar) van -180 tot 180 graden,
verticaal (langs de nulmeridiaan) van 90 tot -90 graden.

In de cube mapping blijft de regio tussen 45ºNB en 45ºZB onveranderd,
de gebieden boven 45ºNB en onder 45ºZB worden getransformeerd tot driehoeken
(de 10 lichtgele gebieden knip je weg):
Afbeelding
Die driehoeken kan je naar achter vouwen, waarna je het geheel tot een gesloten kubus kan vouwen.
In het voorvlak van die kubus (hier aangegeven met een geel vierkant, met daarin Afrika)
hebben we dan nog steeds een vierkant rooster met gelijke eenheden in de richtingen van
lengte- en breedte-graden.

De diagonalen die je zoekt (ook aangegeven met gele lijnen) hebben hierin de vergelijking
\(\lambda = \varphi\)
en
\(\lambda = -\varphi\)
voor \(-45^\circ \le \varphi \le 45^\circ\)

In de sinusoide projectie gebruik je de nulmeridiaan als x-as en de evenaar als y-as.
Dat is erg handig voor het tekenen van bovengenoemde diagonalen in deze projectie:
\(x = \varphi\)
\(y = \lambda \cdot \cos(\varphi)\)

In de eerste diagonaal (met \(\lambda = \varphi\)) krijgen we dan:
\(y = \varphi \cdot \cos(\varphi)\)
ofwel
\(y = x \cdot \cos(x)\)

En in de tweede diagonaal (met \(\lambda = -\varphi\)) krijgen we dan:
\(y = -\varphi \cdot \cos(\varphi)\)
ofwel
\(y = -x \cdot \cos(x)\)

Aangepast met de juiste kaart-schaling zien de diagonalen er in de sinusoide projectie zo uit:
Afbeelding
met
- in kleur het voorvlak van de kubus (de randen daarvan volgen de 45º lengte- en breedtegraden)
- in rood de evenaar en de nulmeridiaan
- in geel de curves \(y = x \cdot \cos(x)\) en \(y = -x \cdot \cos(x)\)

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 14 jun 2020, 16:19

Weerom fantastisch, bravo.
Ik had ondertussen zelf een (met de hand getekende versie) gemaakt.
<img src="https://i.ibb.co/Y09MR26/geprojecteerde-diagonalen.jpg" alt="geprojecteerde-diagonalen" border="0">
Afbeelding
(Enkel de rode markeringen zijn van werkelijk belang, de groene lijnen zijn probeersels en bedenkingen.)
Dus als ik het goed begrijp (het is te zeggen: zoals ik het in mijn simplistische visie zie) zijn er twee cosinussen op de plaats van een?
En dan trachtte ik nog af te leiden wat dan de formule was voor de andere diagonalen, die een andere hoek hebben dan 45 graden. (En dat zijn die groene krabbels waar het mis is gelopen). Maar wat ik wel begrijp is dat de 'amplitude' groter of kleiner wordt, dat heb ik opgestoken ondertussen van de info over de sinusprojectie.

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 14 jun 2020, 16:22

... en waarschijnlijk nog een domme opmerking, ik laat in het midden of je er wil op antwoorden: de diagonalen van een vierkant op een bol liggen in het verlengde van de zijden van een ander vierkant.
Maar in de sinusprojectie liggen de geprojecteerde diagonalen op een bepaald moment buiten de oorspronkelijke projectie?

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 14 jun 2020, 20:06

Bij bovenstaande: ik denk dat ik het probleem zie.Enkel bij cylindrische (of equirectangulaire?) projectie is dit het geval (=diagonalen in verlengde zijden)?

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 15 jun 2020, 20:52

In je sinusprojectie-tekening met diagonalen, vertegenwoordigt die diagonaal nu nog een hoek van 45° of van de helft van 45°, want nu ben ik in de war?

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door arie » 17 jun 2020, 23:17

Afbeelding

In een rechthoekige projectie met hoogte : breedte = 1 : 2 (bovenste plaatje) hebben alle breedtegraden en lengtegraden dezelfde eenheid, en staan alle lengte- en breedtegraden loodrecht op elkaar.
Die lijnen vormen dan een rooster zoals op gebruikelijk ruitjespapier.

Als we de nul-meridiaan als x-as kiezen (van noordpool = 90 naar zuidpool = -90) en de evenaar als y-as (van -180 (west) naar 180 (oosterlengte)), dan kunnen we net als op ruitjespapier lijnen beschrijven door de formule
y = a*x + b
met a en b constanten.
In bovenstaand voorbeeld is
-- de groene lijn: y = (1/2)*x, dus als x = 60ºNB, dan is y = (1/2)*60º = 30ºOL
-- de rode lijn: y = x, dus als x = 60ºNB, dan is y = 60ºOL
-- de blauwe lijn: y=2x, dus als x=80ºNB, dan is y = 2*80º = 160ºOL

De constante a is de richtingscoefficient van de lijn, dit is tevens de tangens van de hoek van die lijn met de positieve x-as (dit laatste is in ons geval de nulmeridiaan van evenaar tot noordpool).

Deze hoeken zijn voor bovenstaande lijnen dus:
-- groen: \(\text{atan}(\frac{1}{2}) = 26.565^\circ\)
-- rood: \(\text{atan}(1) = 45^\circ\)
-- blauw: \(\text{atan}(2) = 63.4349^\circ\)

De rode lijn maakt overal op aarde een hoek van 45º met de lijn van elke lengtegraad,
en een hoek van 90º - 45º = 45º met elke breedtegraad.
Deze rode lijn valt samen met de diagonaal uit de vorige post.


In de onderste helft van het plaatje zie je de sinusoide projectie van bovenstaande lijnen.
Hierin blijft de x-coordinaat gelijk, maar vermenigvuldigen we y met de cosinus van de breedtegraad = x.
De lijn in de vorm
y = a*x + b
wordt in de sinusoide projectie dan
y = (a*x + b) * cos(x)

-- voor de groene lijn geeft dit de functie \(y = \frac{1}{2} \cdot x \cdot \cos(x)\)
-- voor de rode lijn geeft dit de functie \(y = x \cdot \cos(x)\)
-- voor de blauwe lijn geeft dit de functie \(y = 2 \cdot x \cdot \cos(x)\)


We kunnen elke relatie tussen lengtegraad y en breedtegraad x in het rechthoekig rooster zo omzetten naar de sinusoide projectie van die relatie.

Hier bijvoorbeeld een cirkel met straal 30º rond Sint Maarten (18ºNB, 63ºWL):
\(y = -63 \pm \sqrt{30^2 - (x-18)^2}\)
die in de projectie eronder gegeven wordt door
\(y = \left(-63 \pm \sqrt{30^2 - (x-18)^2}\right) \cdot \cos(x)\)



Afbeelding

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 18 jun 2020, 07:00

Fenomenaal. Hier ik ga eens rustig over nadenken.
Ik heb overigens in de tussentijd een boek besteld met de (geschiedenis en) wiskunde van de boldriehoeksmeetkunde (ook i.v.m. cartografie en zo), maar dat blijkt met deze uitleg eigenlijk niet meer nodig. Misschien moet jij er eens een boek over schrijven, ik weet niet of er veel verkrijgbaar is in het Nederlands hieromtrent trouwens?

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 18 jun 2020, 17:03

...en uit de projectie van de cirkel uit de laatste afbeelding ben ik nog niet uit, maar gezien de projectievorm en de ligging zou ik zeggen dat dit het is wat men bedoelt met 'het ei van Columbus'. :)

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door arie » 19 jun 2020, 09:06

De geschiedenis herhaalt zich warempel overal ... :)

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 19 jun 2020, 09:52

Inderdaad. :lol:
Ik heb ondertussen ook nog dit getekend,
<img src="https://i.ibb.co/5YbBHM3/diagonaal-in-p ... icient.jpg" alt="diagonaal-in-projectie-richtingscoefficient" border="0">
maar ik snap nog niet goed (***ongetwijfeld diepe zucht aan beide kanten van het forum***) hoe je de richtingscoëfficiënt omzet in een afstand op de rechte door de 45 graden (met linksgericht pijltje).
Ik begrijp dat de afstand van (in dit geval) 2,12 cm [=cos(45)*3] gaat verdubbelen bij rc=2,rc=4, enzovoort maar bijvoorbeeld bij rc=5.67128181962 [=tan(80)] tast ik in het duister. Is dit dan de 2,12 x tan(80)?

(...en vreemd genoeg krijg je op de google-rekenmachine 5,67... als je de 'rad' aanvinkt)

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door arie » 19 jun 2020, 15:09

Afbeelding

Hierboven een plaatje van de aarde (links) en kopie (rechts), met:
-- zwart = de evenaar en nulmeridiaan
-- grijs = roosterlijnen om de 30º
-- groen = de 45ºNB lijn, evenals het vierkant gevormd door 45ºNB, 45ºOL, 45ºZB en 45ºWL.

De rode lijn maakt een hoek van 80º met de positieve nulmeridiaan (van evenaar tot noordpool),
en heeft de vergelijking (met y = lengtegraad \(\lambda\) en x = breedtegraad \(\varphi\)):
\(y = \tan(80^\circ) \times x\)
ofwel
\(y = 5.6712818\times x\)

Dus op x = 10ºNB is y = 5.6712818 * 10º = 56.712818ºOL.

Voor x = 45ºNB vinden we zo:
y = 5.6712818 * 45º = 255.207681ºOL
Maar dan zijn we de 180º meridiaan (blauw) overgestoken, en komen we in feite terug aan de andere kant van de kaart (de gele lijn).
Die gele lijn snijdt de 45ºNB dan op 255.207681º - 360º = -104.792319ºWL (ergens in de U.S.A.).

De vergelijking van de gele lijn:
- richtingscoefficient a = rc rode lijn = 5.6712818
- b = snijpunt van de rode lijn met de nulmeridiaan in de rechter (kopie-) wereld,
dus als de y-waarde van de rode lijn 360 is (= als we precies 1 keer de wereld rond zijn):
360 = 5.6712818 * x,
dus x = 360 / 5.6712818 = 63.477713
waarmee we de vergelijking van de gele lijn hebben:
y = a*x + b = 5.6712818*x + 63.477713


In de sinusoide projectie gebeurt (uiteraard) hetzelfde, daar blijven de breedtegraden onveranderd, maar moeten we de lengtegraden vermenigvuldigen met de cosinus van de breedtegraden.

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 19 jun 2020, 17:19

Dus in principe op mijn tekening:
op de evenaar is elke 15 graden= 1 cm.
Dus 45°= 3 cm.
3cm * tan(80) = 17.0138454589 cm (dus overschrijdt inderdaad de 180° [=12 cm])
17.0138454589 * cos (45)=12.030605498 cm
Of wat ik voorheen zei: 2.21 cm* tan(80)
Dus als volgt: <img src="https://i.ibb.co/YBK3xb7/diagonaal-80-g ... cteerd.jpg" alt="diagonaal-80-graden-geprojecteerd" border="0">
(paarse lijn)
Of bedoel je nu dat ik er 12 cm moet van aftrekken om het punt binnen de projectie te brengen?

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door arie » 19 jun 2020, 21:47

Afbeelding

In grijs de roosterlijnen op afstand 45º, in blauw de 80º lijn.
We hadden al gevonden dat de blauwe lijn de 45ºNB snijdt op -104.792319º(WL)

De afstand tussen dit snijpunt en de nul-meridiaan in je tekening is dan gelijk aan:

\(\frac{104.792319}{180} \times \text{de maximale amplitude op de evenaar} \times \cos(45^\circ)\)

waarin die cos(45º) de cosinus van de breedtegraad \(\varphi\) is (zoals gebruikelijk bij de sinusoide projectie).

Couperus
Vast lid
Vast lid
Berichten: 34
Lid geworden op: 01 okt 2010, 09:12

Re: sinusoïde projectie van een lijnstuk berekenen?

Bericht door Couperus » 20 jun 2020, 06:35

Daar ga ik nog eens hard moeten over nadenken.
Ik snap dat de lijn/diagonaal doorloopt, en ik dacht dat ze een grootcirkel was, maar als ik het zie in projectie doet het mij denken aan een loxodroom en hoe dit te construeren ontgaat me volkomen voor het moment, sorry. :?

Plaats reactie