欢迎光临散文网 会员登陆 & 注册

趣味数学:圆上的两个点

2023-06-13 01:26 作者:179247641  | 我要投稿

我用python画的[doge]

# -*- coding: utf-8 -*-

"""

Created on Sun Jun 11 00:34:03 2023


@author: lihh

"""


import matplotlib.pyplot as plt

import math

plt.rcParams['figure.figsize']=[100.0,100.0]

plt.axis('equal')

n=2

x=[]

for d in range(n,360*n+1,n):

x.append([math.sin(d/180*math.pi),math.cos(d/180*math.pi)])

y=[]

for d in range(360,-1,-1):

y.append([math.sin(d/180*math.pi),math.cos(d/180*math.pi)])

for i in range(len(x)):

plt.scatter(x[i][0],x[i][1],s=50, c='k', marker='.')

for i in range(len(y)):

plt.scatter(y[i][0],y[i][1],s=50, c='k', marker='*')

p1=[]

p2=[]

x1=0

x2=0

y1=0

y2=0

r=4

for i in range(len(x)):

plt.scatter(x[i][0],x[i][1],s=20, c='k', marker='.')

for i in range(len(x)):

p1=x[i]

p2=y[i]

if(p1!=p2):

if(abs(p2[0]-p1[0])>abs(p2[1]-p1[1])):

x1=r

y1=(x1-p1[0])*(p2[1]-p1[1])/(p2[0]-p1[0])+p1[1]

x2=-1*r

y2=(x2-p1[0])*(p2[1]-p1[1])/(p2[0]-p1[0])+p1[1]

else:

y1=r

x1=(y1-p1[1])*(p2[0]-p1[0])/(p2[1]-p1[1])+p1[0]

y2=-1*r

x2=(y2-p1[1])*(p2[0]-p1[0])/(p2[1]-p1[1])+p1[0]

else:

print(p1,p2)

pass

plt.plot([x1,x2],[y1,y2],'r-')

plt.show()

趣味数学:圆上的两个点的评论 (共 条)

分享到微博请遵守国家法律