我没能设置好范围,这样圆就不会被切断。我希望有人能帮助我。你知道吗
编辑的代码:
我想在g线上镜像点V
from sympy import symbols
from sympy.plotting import plot
from sympy.plotting import plot_implicit
from sympy.geometry import Circle
from sympy import solve
import numpy as np
x, y = symbols(['x', 'y'])
g = 4*x-3*y+1
V = np.array([5,2])
n = np.array([4, -3])
abs_n = np.linalg.norm(n)
hnf_g = abs(g/abs_n)
mirrored_V = V - 2*hnf_g.evalf(subs={x:V[0], y:V[1]}) * n/abs_n
y_g = solve(g,y)
p = plot(y_g[0], show=False, xlim=(-10,10), ylim=(-10,10))
p.extend(plot_implicit(Circle(V,1).equation(), var_start_end_x=(x,-10,10), var_start_end_y=(y,-10,10)))
p.extend(plot_implicit(Circle(mirrored_V,1).equation(), var_start_end_x=(x,-10,10), var_start_end_y=(y,-10,10)))
p.show()
新结果:
旧的:
在^{} 的文档中,可以通过如下复制的第三个示例中所示的设置范围来实现这一点。你知道吗
但这需要一个
Eq
对象,不幸的是,它要么不能从Circle
构造来实现这些目的——可能是由于一个错误传递了bool
而不是bool
元组——要么我遗漏了一些东西。如果是前者那么不足,必须显式构造圆方程,即
完整示例
相关问题 更多 >
编程相关推荐