Coordinaten binnen een Ovaal
Ik zit met een probleem / uitdaging:
Ik heb een willekeurig ovaal met een begin positie ( x, y ) en een breedte en hoogte, nu wil ik kijken of een bepaalde coordinaat ( x, y ) zich in het ovaal bevind.
Gewijzigd op 01/01/1970 01:00:00 door Thijs X
Kwestie van rekenen toch.
SanThe schreef op 19.02.2008 11:36:
Kwestie van rekenen toch.
Ja dat weet ik.
Moet eerlijk zeggen dat het een hele tijd geleden is en niet weet waar ik moet beginnen lol
Bron: Wikipedia
Een ellips wordt ook wel een ovaal genoemd. Dit is echter niet correct : een ellips is een doorlopende kromme terwijl een ovaal uit cirkelsegmenten bestaat. De formule om de oppervlakte van een ellips uit te rekenen lijkt erg op de formule om de oppervlakte van een cirkel uit te rekenen. Het verschil is dat een ellips niet een vaste diameter heeft. Een lijn door het middelpunt heeft een lengte die varieert van een kleinste waarde tot een grootste. De kleinste lijn heet de korte as van de ellips en de grootste de lange as. In plaats van met het kwadraat van de straal zoals bij een cirkel, bereken je de oppervlakte van een ellips met het product ab van de lengten a en b van de beide halve assen. Hieronder staat een ellips afgebeeld met de beide halve assen weergegeven.
Ga voor de formulie maar naar Wikipedia, daar geeft ie de speciale tekens wel goed weer.
Gewijzigd op 01/01/1970 01:00:00 door Crispijn -
Ik denk dat je moet beginnen met een functie te definieren die aansluit op de vorm. Dit zal waarschijnlijk een periodieke functie zijn, iets met een sinus of iets dergelijks. Voor mij is dit ook een tijd geleden, ik kan mij niet meer goed herinneren hoe ik van een dergelijk afbeelding een periodieke functie kan afleiden. Er was zoiets als een voorbeeld functie waarin elke variabele invloed had op bijv. periode, frequentie, etc.
Ik hoop dat ik in ieder geval jou iets in de juiste richting heb gewezen :-)
Patrick Niezen
Bedankt voor jullie reactie, maar omdat het lang geleden is heb ik geen flauw idee hoe ik dit verder moet aanpakken.
Crispijn zou je een voorbeeld kunnen geven?
Daarna wil je gaan kijken hoe groot de oppervlakte is onder de elips tussen bepaalde waarden. dus tussen x=1 en x=2 bijvoorbeeld. Dit is echter een hele ruwe schatting, hoe kleiner je de marge maakt tussen de twee x-en hoe preciezer je antwoord wordt.
Daarna bereken je de oppervlakte van het stukje grafiek van de bovenkant van je elips. Dit ook weer met dezelfde x waarden. Trek uiteindelijk je eerste antwoord van je tweede af en je weet of hij in de elips ligt.
Nog even twee vragen aan jou: waarom heb je dit nodig en heb je enige wiskundige kennis? Ben je bekend met diffrentialen en intergralen? Dit is best pittig om op een forum uit te leggen ;)
Quote:
Ik denk dat je moet beginnen met een functie te definieren die aansluit op de vorm. Dit zal waarschijnlijk een periodieke functie zijn, iets met een sinus of iets dergelijks. Voor mij is dit ook een tijd geleden, ik kan mij niet meer goed herinneren hoe ik van een dergelijk afbeelding een periodieke functie kan afleiden. Er was zoiets als een voorbeeld functie waarin elke variabele invloed had op bijv. periode, frequentie, etc.
Dit klopt natuurlijk niet. Een periodieke functie is iets als een sinus of een cosinus. Een oneindig herhalend iets met precies dezelfde x- of y-waarden. Met een ellips is dit dus totaal niet het geval, je hebt immers een gesloten vorm en daar is niks periodiek aan.
Gewijzigd op 01/01/1970 01:00:00 door Crispijn -
Maakt het uit of het oneindig herhalend is? M.b.v. een dergelijk functie stop je een x waarde in de functie en krijg je de boundaries terug (y en -y, uitgaande dat de vorm gecentreerd is en niet ergens zweeft). Je kijkt vervolgens of je y-coordinate tussen deze twee y-waarden in ligt.
Ik zeg niet dat dit de meest briljante oplossing is, alleen hoe ik denk dat ik het zou oplossen. Indien je alsnog denkt dat ik het fout heb, zou je dan mij kunnen vertellen wat er fout is aan mijn aanpak?
Patrick Niezen
Opzich heb je wel gelijk patrick, alleen het is vaak handiger uit te gaan van de functie die je hebt. Dat is in dit geval de functie voor de oppervlakte van een ellips. Ook ben jij met je aanpak dus beperkt. Je moet er van uit gaan dat je ellips niet zweeft. Bij mijn aanpak is dat niet nodig en daarom is hij een stuk flexibeler. Daarom zou ik voor deze aanpak gaan, en niet voor die van jou.
Quote:
Nog even twee vragen aan jou: waarom heb je dit nodig en heb je enige wiskundige kennis? Ben je bekend met diffrentialen en intergralen? Dit is best pittig om op een forum uit te leggen ;)
Het is voor een programma dat ik aan het schrijven ben, ja ik heb wel enige wiskunde kennis maar omdat het tijd geleden is moet ik het weer helemaal opschrapen ;)
Heb misschien een andere oplossing gevonden maar loop ik tegen het probleem aan hoe ik de straal kan bereken in een ovaal met een willekeurige hoek.
een ovaal met een willekeurige hoek? wat bedoel je daarmee? Dat de a-lengte dus onder een hoek ligt? Hoe genereer je deze ovaal? misschien dat je daar iets uit kan opmaken?
Dit gebeurd in Java dus daar kan ik helaas niks uit opmaken.
Oei, dat maakt het probleem een stuk lastiger. Welke gegevens heb je wel allemaal? Het center punt e.d.?
- Breedte
- Hoogte
Het centerpunt kan dus uitgerekend worden.
Ja, dan kan je de lengte a en b wel uitrekenen. Wat heb je tot nu toe al bedacht? Aan welk wiskunde niveau moet ik bij jou denken? MAVO, HAVO, VWO?
En dan klopt het coordinaat van je centerpunt dus niet. Stel eens een functie op van je centerpunt wanneer de ellips 20 graden gedraaid is. ->Stelling van phytagoras
Als je hem draait blijft het centerpunt nog steeds hetzelfde omdat je hem draait in het centerpunt ( draaipunt ).
Dit moet je differentiëren! Je moet het snijpunt van de ellips en de rode lijn bepalen! Stel dus een functie op voor de rode lijn
f(x) = ... (aan jou de taak ;))
Gewijzigd op 01/01/1970 01:00:00 door Crispijn -
Vond net een hele mooie en simpele oplossing:
http://download.java.net/jdk7/docs/api/java/awt/geom/Ellipse2D.Double.html
In ieder geval bedankt voor je hulp Crispijn!
Gewijzigd op 01/01/1970 01:00:00 door Thijs X
succes ermee!