我想将点 [0,1]、[1,0] 和 [0,-1] 提供给 python 并绘制经过它们的圆。是否存在一个Python模块可以做到这一点?我尝试过使用 matplotlib:
import matplotlib.pyplot as plt
plt.plot([0,1,0],[1,0,-1])
plt.show()
但只给了我两行。
有一个“代码高尔夫”问题与此完全匹配(除了要求圆的方程,而不是绘制它) - 请参阅https://codegolf.stackexchange.com/questions/2289/circle-through-third-points。将第一个也是最短的 (Python) 解决方案分解为更易读、更简单的形式,以匹配您的确切规格 - 但保留使用复数进行更简单计算的核心思想:
x, y, z = 0+1j, 1+0j, 0-1j
w = z-x
w /= y-x
c = (x-y)*(w-abs(w)**2)/2j/w.imag-x
print '(x%+.3f)^2+(y%+.3f)^2 = %.3f^2' % (c.real, c.imag, abs(c+x))
好吧,这仍然是“打印方程”而不是“绘制圆”,但是,我们已经很接近了:-)。实际上plot中的圆圈matplotlib
,参见例如用 pyplot 画一个圆-- 在上面的解决方案中,c
是圆的(负)中心(作为复数,因此使用 .real 和 .imag 作为 x/y 坐标),并且abs(c+x)
半径(实数,abs
使之如此)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)