Как нарисовать кривые четверти круга в питоне - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу нарисовать этот 4-лепестковый блок красным цветом для своей программы:

enter image description here

Мне нужно рисовать каждую кривую отдельно,так, чтобы я мог выделить их жирным шрифтом, чтобы на рисунке были показаны жирные белые узоры.

Я думал о том, чтобы разместить координату своего источника в центре и нарисовать 8 четвертей окружностей вокруг точки.

enter image description here

Надеюсь, у меня была бы только 1 функция, четверть круга, и я мог бы повторить эту функцию (например, отразить ее по оси y), чтобы сделатьвсе 8.

Однако я не смог сделать это с Tkinter или matlab.

С Tkinter я могу рисовать только одну дугу (с дополнительными линиями) за раз.

Код Tkinter:

import tkinter as tk

root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=200, bg='black')
canvas.pack(fill="both", expand=True)

canvas.create_arc(100, 100, 200, 200, start=0, extent=90, outline="white",style="pieslice")

root.mainloop()

Используя Matlab, я могу сделать «четверть круга», буквально уменьшив размер графика, чтобы он отображал только желаемое окно:

import math
import matplotlib.pyplot as plt

plt.figure()
xlist = np.linspace(0, 1.0, 100) # only in quadrant I
ylist = np.linspace(0, 1.0, 100)
X,Y = np.meshgrid(xlist, ylist)
F = X**2 + Y**2 - 1  #  'Circle Equation
plt.contour(X, Y, F, [0], colors = 'k', linestyles = 'solid')
plt.axes().set_aspect('equal')
plt.show()

Любая помощь будетоценили.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Я сделал это, используйте стиль = "дуга" вместо pieslice и нарисуйте 4 полукруга

import tkinter as tk

root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=200, bg='black')
canvas.pack(fill="both", expand=True)

canvas.create_arc(100, 0, 200, 100, start=0, extent=-180, outline="white", style="arc")
canvas.create_arc(100, 100, 200, 200, start=0, extent=180, outline="white", style="arc")
canvas.create_arc(150, 50, 250, 150, start=90, extent=180, outline="white", style="arc")
canvas.create_arc(50, 50, 150, 150, start=90, extent=-180, outline="white", style="arc")

root.mainloop()
0 голосов
/ 23 сентября 2019

Рисунок, который вы показываете, в основном - это 4 полукруга, повернутые на 90 градусов по часовой стрелке.Вы можете нарисовать полукруг, установив предел для уравнения x ^ 2 + y ^ 2 - 1, чтобы он создавал полукруг.

...