Meetkundig vraagstuk over ellips

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.
Plaats reactie
eengebruiker
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 27 dec 2015, 18:23

Meetkundig vraagstuk over ellips

Bericht door eengebruiker » 27 dec 2015, 19:25

Dag,

Ik gebruik een CAD systeem waarmee ik echte ellipsen kan tekenen (geen benadering). Dit systeem vraagt om de punten zoals in de rechter figuur. De punten 1, 2 en 3 zijn voldoende.
De ellips die ik moet tekenen, moet passen tussen 2 horizontale lijnen en leunen tegen een verticale lijn (linker figuur). Met een nogal omslachtige manier kan ik een goede benadering tekenen van een ellips die past.

Ik ben niet tevreden met deze manier van werken en nu vraag ik mij af of iemand in staat is een formule te bedenken voor de punten 1, 2 en 3 gegeven X0, Y1 en Y2. Van de ellips zijn verder bekend de verhouding (L/B) tussen lengte (L), breedte (B) en de hoek (H).

Ik heb het nodige aan wiskunde gehad op school, maar ik kom er niet uit. Ik ben benieuwd.

[Inmiddels zie ik dat de tekening die ik als bijlage had toegevoegd, niet vindbaar is. Als je mij een mailtje stuurt, stuur ik die toe.]

André

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

Re: Meetkundig vraagstuk over ellips

Bericht door arie » 27 dec 2015, 21:11

Figuren/plaatjes kan je uploaden bijvoorbeeld via
http://tinypic.com/
Je krijgt op die site dan een
[ img] ..een of andere naam/code.. [/img]
link die je op dit forum kan plaatsen (in onze text-editor).
Als het goed is wordt je plaatje dan op ons forum zichtbaar.

Zie zo nodig viewtopic.php?f=15&t=5039 voor meer info en alternatieven.

eengebruiker
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 27 dec 2015, 18:23

Re: Meetkundig vraagstuk over ellips

Bericht door eengebruiker » 28 dec 2015, 09:03

Bedankt Arie voor de tips.

http://tinypic.com lijkt te zijn gehakt of mijn eigen laptop is niet fris, geen idee eigenlijk.

Ik kon terecht op imageshack. Zie deze link voor tekeningetjes bij het ellips vraagstuk.

André

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

Re: Meetkundig vraagstuk over ellips

Bericht door arie » 28 dec 2015, 12:17

Ga uit van een ellips in standaardpositie:
- middelpunt in de oorsprong
- lange as op x-as
- korte as op y-as

Afbeelding

In bovenstaande ellips is
a = halve lange as (dus L = 2a)
b = halve korte as (dus B = 2b)

Neem voorlopig a = 1, omdat de verhouding b/a bekend is, is b ook bekend.
In dit plaatje is b = 0.6 gekozen.

De vergelijking van zo'n ellips is



dus in ons geval



ofwel



ofwel




De helling H van de lange as van de gezochte ellips is gegeven.
We zoeken nu dus beide raaklijnen aan onze ellips uit het plaatje die eveneens een helling hebben van H graden.
Dit zijn de rode en blauwe lijnen in bovenstaande figuur.

Voor de rode lijn en punt P:

Neem de bovenste helft van de ellips:



dan is de afgeleide:



en deze moet gelijk zijn aan -tan(H) (=de helling van de raaklijn):



Hieruit volgt



en volgens een eerdere formule hierboven:



De rode raaklijn door P heeft dus de vergelijking



waarbij




Punt Q is nu ook bekend wegens de symmetrie van de figuur:
xQ = -xP
yQ = -yP


Punt R is de derde raaklijn, die loodrecht op lijnen p en q staat.
Deze heeft dus een hellingshoek G = 90(graden) - H.
Deze lijn kan je vergelijkbaar met bovenstaande methode bepalen.


De paarse lijn is een lijn loodrecht op p en q.
Hiermee bereken je de huidige afstand tussen de lijnen p en q.
Je kan nu de hele figuur vermenigvuldigen ten opzichte van de oorsprong, met een factor zodanig, dat de afstand tussen de lijnen p en q gelijk wordt aan de gevraagde afstand y2 - y1.

Rest nog een rotatie om de oorsprong met hoek H (en zo nodig een translatie), en je weet waar de punten (a,0), (0,b) en (-a,0) terecht komen.
De coordinaten van die beelden kan je dan gebruiken in je CAD programma.


Kom je er hiermee uit?

PS:
Heb je een voorbeeld-probleem met waarden voor
x0, y1, y2, hoek H en B/L verhouding ?

eengebruiker
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 27 dec 2015, 18:23

Re: Meetkundig vraagstuk over ellips

Bericht door eengebruiker » 28 dec 2015, 21:02

Dag Arie,

Hartelijk dank voor je inzet. Ik ben heel benieuwd of ik uit de voeten kan met jou antwoord. Ik kom er helaas niet eerder aan toe dan komend weekend. Ik zal te zijner tijd ook prijsgeven waartoe het allemaal dient. Je zult nog verbaasd zijn.

Alvast een mooie jaarwisseling,

André

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

Re: Meetkundig vraagstuk over ellips

Bericht door arie » 28 dec 2015, 23:53

Ik ben benieuwd!

Hier een rekenvoorbeeld, met
H = 30 graden = 30*Pi/180 radialen
x0 = 3
y1 = 2
y2 = 6
B/L = 0.5

met Pari/GP code:

Code: Selecteer alles

{
\\ probleemdefinitie:
\\ hoek H in graden en radialen:
Hdeg = 30;
H = Hdeg*Pi/180.0;
y1 = 2;
y2 = 6;
x0 = 3;
b = 0.5;

tH2 = tan(H)*tan(H);
xp = sqrt(tH2/(b*b+tH2));
yp = b*sqrt(1-xp*xp);
bp = yp + tan(H)*xp;
\\  lijn p:  y = -tan(H)*x + bp

print("raakpunten en raaklijnen:");
print("xp = ", xp);
print("yp = ", yp);
print("bp = ", bp);

xq = -xp;
yq = -yp;
bq = -bp;
\\  lijn q:  y = -tan(H)*x + bq

print("xq = ", xq);
print("yq = ", yq);
print("bq = ", bq);


G = (90-Hdeg)*Pi/180.0;

tG2 = tan(G)*tan(G);
xr = -sqrt(tG2/(b*b+tG2));
yr = b*sqrt(1-xr*xr);
br = yr - tan(G)*xr;
\\ lijn r:  y = tan(G)*x + br

print("xr = ", xr);
print("yr = ", yr);
print("br = ", br);
print();


\\ bereken huidige (halve) afstand:
xs = bp/(tan(G)+tan(H));
ys = tan(G)*xs;
d = sqrt(xs*xs + ys*ys);

print("snijpunt S van rode en paarse lijn:");
print("xs = ", xs);
print("ys = ", ys);
print("d = lengte OS = ", d);
print();


\\ vermenigvuldig alles:
fac=(y2-y1)/(2*d);
print("vermenigvuldiging:");
print("fac = ", fac);

\\ punten op de ellips:
xp*=fac; yp*=fac;
xq*=fac; yq*=fac;
xr*=fac; yr*=fac;

\\ halve as-lengten van de ellips:
ea=fac;
eb=b*fac;

print("ea = ", ea);
print("eb = ", eb);
print();

\\ roteer P, Q en R om de oorsprong over hoek H:
xt=xp; yt=yp;
xp = xt*cos(H) - yt*sin(H);
yp = xt*sin(H) + yt*cos(H);
xt=xq; yt=yq;
xq = xt*cos(H) - yt*sin(H);
yq = xt*sin(H) + yt*cos(H);
xt=xr; yt=yr;
xr = xt*cos(H) - yt*sin(H);
yr = xt*sin(H) + yt*cos(H);

print("geroteerde punten:");
print("xp = ", xp);
print("yp = ", yp);
print("xq = ", xq);
print("yq = ", yq);
print("xr = ", xr);
print("yr = ", yr);
print();

\\ roteer de uiteinden van de assen:
xt=ea; yt=0;
xa = xt*cos(H) - yt*sin(H);
ya = xt*sin(H) + yt*cos(H);
xt=0; yt=eb;
xb = xt*cos(H) - yt*sin(H);
yb = xt*sin(H) + yt*cos(H);

print("xa = ", xa);
print("ya = ", ya);
print("xb = ", xb);
print("yb = ", yb);
print();

\\ bepaal nieuwe middelpunt van de ellips:
mx = x0 - xr;
my = (y2+y1)/2.0;;

print("nieuw middelpunt:");
print("mx = ", mx);
print("my = ", my);
print();

print("transleer alle punten: tel (mx, my) bij alle coordinaten op,");
print("voor de gevraagde punten 1, 2 en 3 levert dit:");
\\ coordinaten van de punten 1, 2 en 3:
\\ lange as, rechter uiteinde:
print("x2 = mx + xa = ", mx + xa);
print("y2 = my + ya = ", my + ya);
\\ lange as, linker uiteinde:
print("x1 = mx - xa = ", mx - xa);
print("y1 = my - ya = ", my - ya);
\\ uiteinde korte as (linksboven):
print("x3 = mx + xb = ", mx + xb);
print("y3 = my + yb = ", my + yb);

}
Dit programma geeft als output:

raakpunten en raaklijnen:
xp = 0.7559289460184544544290330725
yp = 0.3273268353539885718991462281
bp = 0.7637626158259733344313411990
xq = -0.7559289460184544544290330725
yq = -0.3273268353539885718991462281
bq = -0.7637626158259733344313411990
xr = -0.9607689228305228008995220186
yr = 0.1386750490563072805045854334
br = 1.802775637731994646559610634

snijpunt S van rode en paarse lijn:
xs = 0.3307189138830738238127019692
ys = 0.5728219618694800008235058992
d = lengte OS = 0.6614378277661476476254039384

vermenigvuldiging:
fac = 3.023715784073817817716132290
ea = 3.023715784073817817716132290
eb = 1.511857892036908908858066145

geroteerde punten:
xp = 1.484614977916180537309239721
yp = 2.000000000000000000000000000
xq = -1.484614977916180537309239721
yq = -2.000000000000000000000000000
xr = -2.725540575476987569007490246
yr = -1.089409558803844355724225911

xa = 2.618614682831908575193169825
ya = 1.511857892036908908858066145
xb = -0.7559289460184544544290330725
yb = 1.309307341415954287596584913

nieuw middelpunt:
mx = 5.725540575476987569007490246
my = 4.000000000000000000000000000

transleer alle punten: tel (mx, my) bij alle coordinaten op,
voor de gevraagde punten 1, 2 en 3 levert dit:
x2 = mx + xa = 8.344155258308896144200660070
y2 = my + ya = 5.511857892036908908858066145
x1 = mx - xa = 3.106925892645078993814320421
y1 = my - ya = 2.488142107963091091141933855
x3 = mx + xb = 4.969611629458533114578457173
y3 = my + yb = 5.309307341415954287596584913


en als ik bovenstaande resultaten plot:

Afbeelding


Nog wat formules:

Paarse lijn:



Rode lijn



Snijpunt S:








Rotatie om de oorsprong over hoek H:
punt (x, y) wordt afgebeeld op punt (x', y'), waarbij





(zie bv https://en.wikipedia.org/wiki/Rotation_ ... dimensions)

eengebruiker
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 27 dec 2015, 18:23

Re: Meetkundig vraagstuk over ellips

Bericht door eengebruiker » 30 dec 2015, 22:02

Dag Arie,

Phoe je hebt er nu veel tijd in gestoken. Ik geloof natuurlijk dat jou code werkt, maar ik moet het doen met (Auto)Lisp in AutoCAD. Geen straf overigens, want dat is leuk programmeren.

Het is gelukt met jou formules. Ik moest wel van b2 - tan2(H), b2 + tan2(H) maken want tan2(H) kan groter worden dan b2 . Ook voor het punt R vond ik de oplossing met jou aanwijzingen.

Het verplaatsen, roteren en verschalen van de ellips, doe ik in AutoLisp met een opeenvolging van bewerkingen op punten. Dáár is AutoLisp heel goed in.

Ik gebruik dit alleen voor mijzelf om muziek voor schotse doedelzak op papier te zetten. Zie hier voor een deel van zo'n stuk muziek. Uiteraard zijn de noten nog gemaakt op de oude manier.
AutoCAD is niet gemaakt voor dit soort dingen maar anderzijds is er zoveel mee mogelijk dat het zich ook leent voor deze toepassing.

Hartelijk dank voor je inzet.

André

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

Re: Meetkundig vraagstuk over ellips

Bericht door arie » 31 dec 2015, 09:28

Leuke toepassing, die ben ik nog niet eerder tegengekomen.
Mooi dat het gelukt is.

Plaats reactie