File:Normal lines to the ellipse.svg
Summary
Description |
English: Normal lines to the ellipse.[1] The evolute of the ellipse ( = Stretched astroid) can be seen. The streched astroid itself is not not drawn: we see it as the locus of points where the lines are especially close to each other. Stretched = "squashed" astroid = dilated in one direction only= the Lamé curve. Is it generalization of the astroid curve) |
Date | |
Source | Own work |
Author | Adam majewski |
Other versions |
|
SVG development | Category:Valid SVG created with Gnuplot#Normal%20lines%20to%20the%20ellipse.svg ![]() Category:Translation possible - SVGThis plot uses embedded text that can be easily translated using a text editor. |
Licensing
I, the copyright holder of this work, hereby publish it under the following license:
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
Maxima CAS src code
/* =============== Batch file for Maxima CAS save as a c.mac run maxima : maxima and then : batch("e.mac"); ------------text output =-------------- maxima Maxima 5.41.0 http://maxima.sourceforge.net using Lisp GNU Common Lisp (GCL) GCL 2.6.12 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) batch("e.mac"); read and interpret file: #p/home/a/maxima/batch/curves/ellipse/e2/e.mac (%i2) kill(all) (%o0) done (%i1) remvalue(all) (%o1) [] (%i2) ratprint:false (%o2) false (%i3) display2d:false (%o3) false (%i4) ellipse:x^2/a^2+y^2/b^2-1 (%o4) y^2/b^2+x^2/a^2-1 (%i5) GiveSlopeEquation(e):=block([deriv,m],depends(y,x),deriv:diff(e,x), m:solve(deriv,'diff(y,x)),m:m[1],m:rhs(m),return(m)) (%i6) define(m(x,y),GiveSlopeEquation(ellipse)) (%o6) m(x,y):=-(b^2*x)/(a^2*y) (%i7) t:0.33 (%o7) 0.33 (%i8) a:2 (%o8) 2 (%i9) b:1 (%o9) 1 (%i10) x0:a*cos(t) (%o10) 1.892084687056774 (%i11) y0:b*sin(t) (%o11) 0.3240430283948683 (%i12) m0:m(x0,y0) (%o12) -1.459748028239586 (%i13) tangent:y = m0*(x-x0)+y0 (%o13) y = 0.3240430283948683-1.459748028239586*(x-1.892084687056774) (%i14) normal:y = (-(x-x0))/m0+y0 (%o14) y = 0.3240430283948683-0.6850497350600779*(1.892084687056774-x) (%i15) load(draw) (%o15) "/usr/share/maxima/5.41.0/share/draw/draw.lisp" (%i16) path:"~/maxima/batch/curves/ellipse/e2/" (%i17) draw2d(user_preamble = "set key top right; unset mouse; ", terminal = 'svg,file_name = sconcat(path,"ell3"),font_size = 13, font = "Liberation Sans", title = "Normal and tangent line to the ellipse ", proportional_axes = 'xy,xrange = [-3,3],yrange = [-3,3], ip_grid = [100,100],color = blue,key = "circle", implicit(ellipse,x,-4,4,y,-4,4),key = "tangent",color = red, implicit(tangent,x,-4,4,y,-4,4),key = "normal",color = green, implicit(normal,x,-4,4,y,-4,4),key = "point", point_type = filled_circle,color = black,points([[x0,y0]])) (%o17) "e.mac" */ kill(all); remvalue(all); ratprint:false; /* a message informing the user of the conversion of floating point numbers to rational numbers is displayed. */ display2d:false; /* ---------- functions ---------------------------------------------------- */ /* ellipse in implicit form */ ellipse : x^2/a^2 + y^2/b^2 - 1; /* https://www.linuxjournal.com/content/maximum-calculus-maxima implicit differentiation compute m equation find dy/dx of implicit equation e */ GiveSlopeEquation(e):=block( [deriv,m], depends(y,x), deriv:diff(e,x), m:solve(deriv,'diff(y,x)), m:m[1], m:rhs(m), return(m) )$ /* m(x,y):=-x/y */ define( m(x,y), GiveSlopeEquation(ellipse)); give_line(t):=block( [x0, y0, m0], t:float(t), /* compute point z = x+y*i of the ellipse */ x0: a*cos(t), y0: b*sin(t), /* compute slope */ m0 : m(x0,y0), return(explicit(-(x-x0)/m0 + y0,x,-4,4)) /* normal */ )$ /* ellipse parameters */ a:2; b:1; iMin:1; /* cot: argument 0.0 isn't in the domain of cot. #0: give_line(t=0) */ iMax:200; /* --------------------computations -------------------------------*/ tt: makelist(2*%pi*i/iMax, i, iMin, iMax)$ /* list of angles from 0 to 2 Pi */ lines: map(give_line,tt)$ /* ------- draw --------------------------------------- */ load(draw); path:"~/maxima/batch/curves/ellipse/en/"$ /* pwd, if empty then file is in a home dir , path should end with "/" */ draw2d( user_preamble="set key top right; unset mouse; ", terminal = 'svg, file_name = sconcat(path,"en200_2000_e"), font_size = 50, font = "Liberation Sans", /* https://commons.wikimedia.org/wiki/Help:SVG#Font_substitution_and_fallback_fonts */ title= "Normal lines to the ellipse ", proportional_axes = 'xy, dimensions = [2000,2000], xrange = [-5,5], yrange = [-5,5], ip_grid=[200,200], color= blue, key = "", lines, color=black, implicit(ellipse, x,-4,4, y,-4,4) )$Category:Astroid Category:Differential geometry Category:Evolute Category:Gnuplot graphics Category:Images with Maxima CAS source code Category:Lines Category:SVG Ellipses