趣味數(shù)學(xué):圓上的兩個(gè)點(diǎn)

我用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()