, . . , .
from math import sqrt,cos,sin,radians
def distance(x1,y1,x2,y2):
return sqrt((x2-x1)**2 + (y2-y1)**2)
a = 5
b = 3
x0 = a
y0 = 0
angle = 0
d = 0
while(angle<=360):
x = a * cos(radians(angle))
y = b * sin(radians(angle))
d += distance(x0,y0,x,y)
x0 = x
y0 = y
angle += 0.25
print("Circumference of ellipse = {:f}".format(d))
onetenth = d/10
angle = 0
x0 = a
y0 = 0
angle0 = 0
for i in range(10):
dist = 0
while(dist<onetenth):
angle += 0.025
x = a * cos(radians(angle))
y = b * sin(radians(angle))
dist += distance(x0,y0,x,y)
x0 = x
y0 = y
print(
"{} : angle = {:.2f}\tdifference = {:.2f}\tDistance {:.2f}"
.format(i+1,angle, angle-angle0,dist))
angle0 = angle
:
Circumference of ellipse = 25.526979
1 : angle = 42.99 difference = 42.99 Distance 2.55
2 : angle = 75.27 difference = 32.28 Distance 2.55
3 : angle = 104.73 difference = 29.46 Distance 2.55
4 : angle = 137.01 difference = 32.28 Distance 2.55
5 : angle = 180.01 difference = 42.99 Distance 2.55
6 : angle = 223.00 difference = 42.99 Distance 2.55
7 : angle = 255.28 difference = 32.28 Distance 2.55
8 : angle = 284.74 difference = 29.46 Distance 2.55
9 : angle = 317.02 difference = 32.28 Distance 2.55
10 : angle = 360.02 difference = 43.00 Distance 2.55
, (.. a = b = 5), :
Circumference of ellipse = 31.415902
1 : angle = 36.00 difference = 36.00 Distance 3.14
2 : angle = 72.00 difference = 36.00 Distance 3.14
3 : angle = 108.00 difference = 36.00 Distance 3.14
4 : angle = 144.00 difference = 36.00 Distance 3.14
5 : angle = 180.00 difference = 36.00 Distance 3.14
6 : angle = 216.00 difference = 36.00 Distance 3.14
7 : angle = 252.00 difference = 36.00 Distance 3.14
8 : angle = 288.00 difference = 36.00 Distance 3.14
9 : angle = 324.00 difference = 36.00 Distance 3.14
10 : angle = 360.00 difference = 36.00 Distance 3.14
. -, . . , .