Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

"Graden" van vinger ten opzichte van het midden.

Pagina: 1
Acties:

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 00:48
Goed, ik zit met een probleempje. Ik probeer "de graden" waarop mijn vinger zit tenopzichte van het midden te berekenen, maar ik kom er niet uit.

Hier een plaatje wat mijn vraagstuk schetst:

Afbeeldingslocatie: http://cl.ly/SGMt/graden.png

Het midden is het zwarte stipje, mijn vinger is de rode stip. Nu probeer ik het aantal "graden" dat mijn vinger zich bevind uit te rekenen ten opzichte van het midden. (Dat zou in het voorbeeld op +- 35 uitkomen)

Dus zeg maar over het geheel ligt een groot compas met het midden op de stip: "Wat wijst mijn vinger nu aan qua graden?"

Ik zat eerst te prutsen met diverse oplossingen in Wikipedia "Solution of triangles" maar daarmee kwam ik er niet uit. En dan krijg ik ook enkel de hoeken binnen de driehoeken.

Nu kan ik wel de afstanden tussen de twee punten uitrekenen en linksonder is 0,0. Maar volgens mij heb je dat niet eens nodig om het uit te rekenen, of zit ik daar naast.

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Coordinaat van midden weet je. Vervolgens heb je horizontaal en verticaal een afstand en is t simpelweg soscastoa erbij pakken.

{signature}


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22-11 21:14

MBV

De simpelste berekening: je hebt de hoogte en breedte ten opzichte van het midden. tan(alpha) = hoogte / breedte, dus de hoek alpha = tan-1 (hoogte/breedte). Misschien zijn er snellere manieren om dit te berekenen :)

meer: Wikipedia: Goniometrie

Tot zover havo 3 wiskunde :P

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 12:59
Je hebt nu een x en y t.o.v. van je relatieve midden op een cartesiaans grid.
Zet deze om naar een polair grid en je bent klaar.
http://www.engineeringtoo...r-coordinates-d_1347.html
Daar zijn vast kant-en-klaar functies voor.

Let er wel op dat de eenheidscirkel zoals jij hem tekent niet goed is, en je kunt hem ook in radialen uitrekenen.
0 graden en 0 pi wijst naar rechts.
Wikipedia: Eenheidscirkel

Verwijderd

Wie bepaalt dat? Waarom is het midden van de cirkel niet de oorsprong? Dat is een stuk handiger.

Overigens helpt het als je de juiste termen gebruikt. Je hebt het over "de graden", maar zeg voortaan gewoon "de hoek" of "angle" in het Engels. Het andere sleutelwoord is "coördinaten" of "coordinates".

De hoek in radialen is de tangens van de verhouding tussen x en y coördinaten, voor de rest is het een kwestie van ofwel je assenstelsel slim kiezen, ofwel een transformatie uitvoeren.

  • Fexxman
  • Registratie: November 2010
  • Niet online
Dit doe je met ArcTangent aka Atan2: Wikipedia: atan2

Vergeet niet dat het resultaat een radiaal is waardoor je hem moet omzetten naar graden.
code:
1
Math.Atan2(posY - middelY, posX - middelX) * (180/Math.PI);


MSDN: Math.Atan2 Method (System)

ps en ja de signature is Atan2(y,x) in de meeste talen/frameworks

[ Voor 3% gewijzigd door Fexxman op 03-11-2013 13:23 ]


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Vector normaliseren, x coordinaat is de sinus van de hoek. Dus, asin((vinger[x]-midden[x])/||vinger-midden||). Waar bij ||v|| = sqrt(v[x]^2 + v[y]^2) Ohja, dan moet je nog de helft checken... heb je atan2 uitgevonden :)

[ Voor 18% gewijzigd door Zoijar op 03-11-2013 13:43 ]


  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Je kan de lijn met rode stip ook doortrekken zodat je een driehoek hebt.
http://www.driehoekberekenen.be/

Maak je niet druk, dat doet de compressor maar


  • ZpAz
  • Registratie: September 2005
  • Laatst online: 00:48
Fexxman schreef op zondag 03 november 2013 @ 13:18:
Dit doe je met ArcTangent aka Atan2: Wikipedia: atan2

Vergeet niet dat het resultaat een radiaal is waardoor je hem moet omzetten naar graden.
code:
1
Math.Atan2(posY - middelY, posX - middelX) * (180/Math.PI);


MSDN: Math.Atan2 Method (System)

ps en ja de signature is Atan2(y,x) in de meeste talen/frameworks
Dit is hem inderdaad, dankjewel!

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22-11 21:14

MBV

Gefeliciteerd Fexxman, ik dacht dat ik al te ver ging met een huiswerkvraag oplossen :X

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

ZpAz schreef op zondag 03 november 2013 @ 17:16:
[...]

Dit is hem inderdaad, dankjewel!
Tenzij je ook begrijpt waarom die code goed is heb je hier helemaal niks aan.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22-11 21:14

MBV

Hoezo niet? Het werkt toch? [/sarcasm]

  • Oyster
  • Registratie: Januari 2003
  • Niet online

Oyster

Prince

Is dit voor een educatie applicatie? Want dan zijn er nog wel wat tips te verzinnen. :p

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 00:48
MBV schreef op zondag 03 november 2013 @ 17:22:
Gefeliciteerd Fexxman, ik dacht dat ik al te ver ging met een huiswerkvraag oplossen :X
Hij moet nu echt wel de lijn zijn overgegaan door een bruikbaar antwoord aan te reiken.
NMe schreef op zondag 03 november 2013 @ 18:07:
[...]

Tenzij je ook begrijpt waarom die code goed is heb je hier helemaal niks aan.
Jawel, het lost mijn probleem op. Natuurlijk is het handig om te weten waarom iets je probleem oplost. Dat ben ik met je eens. Maar zeggen dat je hier helemaal niets aan hebt omdat je het interne gedeelte niet exact weet daar ben ik het nou ook niet altijd met je eens.

Dat is zeggen dat je een library als DirectX niet mag gebruiken omdat je niet weet hoe intern die calls worden verwerkt. Het weten van hoe het intern werkt maakt het mogelijk dat je er beter gebruik van kan maken. Maar als de output exact is wat je verwacht als je er wat instopt en het is daardoor bruikbaar voor jou, dan is dat niet per definitie verkeerd.

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


Verwijderd

In dit geval is dat gelul en moet je gewoon je goniometrie bijspijkeren.

  • link0007
  • Registratie: Augustus 2006
  • Niet online
ZpAz, dit gaat veel verder dan niet weten hoe DirectX-calls afgehandeld worden. Een betere vergelijking is iemand die geen idee heeft wat al die "&&' en '||' symbolen betekenen, maar die toevallig een stukje code heeft gevonden op het internet die precies doet wat hij wil...

.. tien minuten later is er een nieuw probleem, waardoor die persoon alwéér niet weet hoe hij het moet oplossen.

Dit is écht geen moeilijke stof. Wie kan programmeren, kan dit ook wel begrijpen. En hier ga je nog duizenden malen gebruik van moeten maken in je leven, dus je kan maar beter gewoon een uurtje besteden aan uitvogelen hoe dit allemaal werkt.

IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF;


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
ZpAz schreef op zondag 03 november 2013 @ 20:48:
[...]
Hij moet nu echt wel de lijn zijn overgegaan door een bruikbaar antwoord aan te reiken.
Aan de hand vd eerste 2 replies zou je al herinnerd moeten zijn aan 1e, hoogstens begin 2e jaars wiskunde. En dan is het echt niet heel erg als dat even is weggezakt omdat je niet alles elke dag gebruikt, maar het zou wel voldoende houvast moeten bieden. :)

{signature}


  • ZpAz
  • Registratie: September 2005
  • Laatst online: 00:48
link0007 schreef op zondag 03 november 2013 @ 21:08:
ZpAz, dit gaat veel verder dan niet weten hoe DirectX-calls afgehandeld worden. Een betere vergelijking is iemand die geen idee heeft wat al die "&&' en '||' symbolen betekenen, maar die toevallig een stukje code heeft gevonden op het internet die precies doet wat hij wil...
Voor mijn gevoel, uiterst subjectief uiteraard, ligt de moeilijkheidsgraad van goniometrie toch wel een stuk hoger dan boolean logic.

Nee, binnen tien minuten komt er niet weer een probleem, dikke kans dat ik dit het komende jaar niet meer een vergelijkbaar probleem tegenkom. Ik weet niet hoe het met jullie zit, maar met de dingen die ik over het algemeen maak komt niet al te veel goniometrie bij kijken.

Nu heb ik in het begin ook al gezegd dat mijn wiskunde nooit mijn sterkte was, dit is mijn zwakke punt om het zo maar te noemen. Maar om dan direct tot overhaastige conclusies te springen is ook weer een ander uiterste.




On a sidenote, hoeveel mensen hier weten de "formule" achter bijvoorbeeld Arctangent want dat is waar het hier om gaat. En gebruikt het niet omdat ze ooit hebben gestampt: "Als deze situatie zich voordoet heb ik deze wiskundige functie nodig". Dat is namelijk precies het punt waar ik nu op "aangevallen" wordt.

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Het probleem is niet dat je niet direct weet welke formule je moet gebruiken, maar dat je die formule zonder nadenken gewoon overneemt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

ZpAz schreef op zondag 03 november 2013 @ 21:18:
On a sidenote, hoeveel mensen hier weten de "formule" achter bijvoorbeeld Arctangent want dat is waar het hier om gaat. En gebruikt het niet omdat ze ooit hebben gestampt: "Als deze situatie zich voordoet heb ik deze wiskundige functie nodig". Dat is namelijk precies het punt waar ik nu op "aangevallen" wordt.
Ik heb dat allemaal wel geleerd, maar nu grotendeels vergeten. Ik geloof dat je het allemaal aan kon tonen met taylor series. Dat is eerste-jaars analyse bij wiskunde op de universiteit -- meestal volgt informatica dat ook nog.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 13:12
ZpAz schreef op zondag 03 november 2013 @ 21:18:



On a sidenote, hoeveel mensen hier weten de "formule" achter bijvoorbeeld Arctangent want dat is waar het hier om gaat. En gebruikt het niet omdat ze ooit hebben gestampt: "Als deze situatie zich voordoet heb ik deze wiskundige functie nodig". Dat is namelijk precies het punt waar ik nu op "aangevallen" wordt.
Het is al eerder hier genoemd, maar als je SOSCASTOA onthoudt ben je al een heel eind.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22-11 21:14

MBV

ZpAz schreef op zondag 03 november 2013 @ 20:48:
[...]


Hij moet nu echt wel de lijn zijn overgegaan door een bruikbaar antwoord aan te reiken.
Wat was er onbruikbaar aan mijn antwoord dan? Ik heb je gewezen op het bestaan van goniometrie, heb zelfs aangegeven welke formule je moet toepassen, de laatste vertaalslag van wiskundige formule naar code moest je zelf doen. Daarmee heb je een klein beetje kans om ook te snappen wat je doet. Hij heeft een copy/paste antwoord gegeven, en dat is voor mij 'de lijn'.
Maar zeggen dat je hier helemaal niets aan hebt omdat je het interne gedeelte niet exact weet daar ben ik het nou ook niet altijd met je eens.
Daar zit hem de crux: dat je van libraries het interne gedeelte niet exact weet is logisch, daarvoor gebruik je ze. Jij hebt nu een stukje 'black box' in je eigen code staan. Alle code die ik in mijn eigen beheer heb, snap ik: ik snap waarom ik een library call nodig heb.

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Zoijar schreef op zondag 03 november 2013 @ 22:17:
Dat is eerste-jaars analyse bij wiskunde op de universiteit -- meestal volgt informatica dat ook nog.
Nope. Daar wordt, misschien niet overal maar wel bij mij, niet veel aandacht besteed aan fundamentele wiskunde, alleen aan wiskunde die binnen de informatica belangrijk is zoals rekenen met matrices, verzamelingen, recursie etc.

[ Voor 32% gewijzigd door bwerg op 04-11-2013 14:22 ]

Heeft geen speciale krachten en is daar erg boos over.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik ben van mening dat er in deze topic een beetje te makkelijk de "maar snap je het nu ook echt"-kaart wordt gespeeld. We hebben het hier over een vrij fundamentele functie in de goniometrie. natuurlijk hoef je daar als programmeur niet de ins en outs van te weten. Dan leer je gewoon dat je een polaire coordinaat (r, a) om kunt zetten in een Euclidische (x,y) door (r∙cos a, r∙sin a) te doen, en dat 'a' weer te berekenen is dmv atan2(y,x). Punt. Als iemand vraagt hoe hij in PHP text kan outputten dan ga je na het geven van het antwoord ook niet vragen of hij wel snapt wat echo nou eigenlijk doet?

[ Voor 15% gewijzigd door .oisyn op 04-11-2013 17:36 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22-11 21:14

MBV

Ik neem aan dat je het verschil ziet tussen dit:
MBV schreef op zaterdag 02 november 2013 @ 17:58:
De simpelste berekening: je hebt de hoogte en breedte ten opzichte van het midden. tan(alpha) = hoogte / breedte, dus de hoek alpha = tan-1 (hoogte/breedte). Misschien zijn er snellere manieren om dit te berekenen :)
en dit:
Fexxman schreef op zondag 03 november 2013 @ 13:18:
code:
1
Math.Atan2(posY - middelY, posX - middelX) * (180/Math.PI);
De eerste is op het randje, ik had kunnen verwijzen naar wikipedia over goniometrie en daarmee klaar. De tweede lokt copy/paste uit zonder zelfs maar te weten wat Atan2 doet. Op de tweede speelde ik de "maar snap je het nu ook echt"-kaart :)

[ Voor 4% gewijzigd door MBV op 04-11-2013 17:50 ]

Pagina: 1