Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Plots, Elliptic,Roots
- # Plottaa tasaväliset pisteet ellipsiin
- # ellipsin piiri jaetaan n tasaväliseen osaan
- # lasketaan kunkin osan alun vastaava kulma t
- # plotataan näin saatu tasaväliset piirin pisteet
- # Juhani Kaukoranta 30.12.2023
- function inverseE(z,m)
- # nollakohdan etsintä,jota tarvitsee
- # funktio t_from_length
- em = E(m)
- t = (z/em)*(pi/2)
- f(u) =E(u,m) - z
- return find_zero(f,t) # löytyy kun f(u)=t
- end
- function t_from_length(length,a,b)
- # etsii kaaren piuutta vastaavan kulman T
- m = 1 - (b/a)^2
- T = pi/2 -inverseE(E(m) - length/a,m)
- return T
- end
- function ellipsepoints(a,b,n)
- # a,b = ellipsin puoliakselit
- # n = pisteiden lukumäärä
- t = range(0, 2pi, length=n); # parametrinen kulma, n arvoa
- x,y = a * cos.(t),b * sin.(t); # korjaamaton ellipsin pistejoukko
- p1=scatter(x,y,title="korjaamattomat pisteet",msize=1,aspect_ratio=:equal,legend=:false)
- m = 1 - b^2/a^2
- perimeter = 4*a*E(m); # ellipsin piiri
- eka = perimeter/n # eka väli , muut samanpituisia
- valit = range(start=0,step=eka,stop=perimeter) # piiri jaettu n osaan
- tt = t_from_length.(valit,a,b)
- x2,y2=a*cos.(tt),b*sin.(tt); # korjattu ellipsin pistejoukko
- p2=scatter(x2,y2,title="tasaväliset pisteet",msize=1,aspect_ratio=:equal,legend=:false) # korjatut
- plot(p1,p2,layout=grid(1,2, ), size=(900,500))
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement