|
|
\require{AMSmath}
Benadering ellips door cirkelbogen
Ik ben op zoek naar een routine (bv in Visual Basic) om een ellips op te delen en te benaderen door cirkelbogen. De overgang van de ene naar de andere cirkelboog dient rakend (zelfde richtingscoefficient) te zijn. Gewenste invoer: lange en korte as van de ellips, startpunt, eindpunt, nauwkeurigheid van de benadering. (de assen van de ellips liggen altijd horizontaal/vertikaal) Ik hoop dat iemand me kan helpen, want ik ben er al heel lang mee bezig.
Mark
Student hbo - donderdag 28 augustus 2003
Antwoord
Eerst maar eens kijken of ik het goed begrepen heb.
In bovenstaande tekening zie je: Een ellips. Ik heb de twee rode punten op de ellips getekend en de twee rode lijnen die in de rode punten loodrecht op de ellips staan. Van deze twee lijnen heb ik het snijpunt uitgerekend (de derde rode stip) en de cirkel getekend die dit snijpunt als middelpunt heeft en door de twee rode punten gaat. Het stukje van de rode cirkel tussen de rode punten is de benadering van de ellips tussen de rode punten. Vervolgens heb ik een derde punt op de ellips getekend (het groene punt). Weer de loodlijn getekend (groen). Snijpunt berekend van de middelste rode lijn en de groene lijn. Groene cirkel is dan de cirkel met middelpunt de groene stip door het oorspronkelijke punt op de ellips. Omdat de middelste rode lijn een straal is van beide cirkels sluiten de rode en de groene cirkel in het middelste punt op de ellips netjes glad aan, omdat ze in dit aansluitpunt beide loodrecht op deze straal staan. Op zich moet dit in iedere programmeertaal te programmeren zijn. (Ik heb het zelf geprogrammeerd in het door mij geschreven tekenprogramma Wiskit (freeware), omdat dit programma opdrachten bevat waarmee je snijpunten van lijnen uit kunt rekenen. Je kunt dit programma ophalen op Wiskit) Het gebruikte programma heeft de volgende code:a:=2 b:=3 maak$($x;a*cos(t)) maak$($y;b*sin(t)) maak$($xacc;-a*sin(t)) maak$($yacc;b*cos(t)) vulstijl(0) vulkleur(15138815) ellips(-a;-b;a;b) vulstijl(1) t:=0.6 x1:=$x y1:=$y x1acc:=$xacc y1acc:=$yacc t:=1.0 x2:=$x y2:=$y x2acc:=$xacc y2acc:=$yacc t:=1.4 x3:=$x y3:=$y x3acc:=$xacc y3acc:=$yacc tekenkleur(255) vectorvoorstelling(x1;y1;-y1acc;x1acc;-4;4) vectorvoorstelling(x2;y2;-y2acc;x2acc;-4;4) stip(x1;y1;2) stip(x2;y2;2) snijpuntlijnlijn(x1;y1;x1-10*y1acc;y1+10*x1acc;x2;y2;x2-10*y2acc;y2+10*x2acc;s1;s2) snijpuntlijnlijn(x2;y2;x2-10*y2acc;y2+10*x2acc;x3;y3;x3-10*y3acc;y3+10*x3acc;s3;s4) stip(s1;s2;2) cirkelmppunt(s1;s2;x1;y1) tekenkleur(32768) stip(x3;y3;2) stip(s3;s4;2) vectorvoorstelling(x3;y3;-y3acc;x3acc;-4;4) cirkelmppunt(s3;s4;x3;y3) Mocht je verder vragen hebben stel ze dan gerust (via reageren)
|
Vragen naar aanleiding van dit antwoord? Klik rechts..!
donderdag 28 augustus 2003
|
|
home |
vandaag |
bijzonder |
gastenboek |
statistieken |
wie is wie? |
verhalen |
colofon
©2001-2024 WisFaq - versie 3
|