Нарисуйте круг с периодическими граничными условиями matplotlibPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Нарисуйте круг с периодическими граничными условиями matplotlib

Сообщение Anonymous »

Я делаю проект, в котором используются решетки. Точка с координатами (x0, y0) выбирается случайным образом, и мне нужно покрасить в синий цвет все точки, находящиеся в круге с центром (x0, y0) и радиусом R, и в красный цвет все остальные точки, а затем нарисовать вокруг них круг.< /p>
Сложность заключается в том, что существуют периодические граничные условия, а это означает, что если мой круг находится рядом с левой границей, то мне нужно нарисовать остальную часть его справа, то же самое касается и верха. и вниз.
Вот мой код, который строит решетку. Мне удалось раскрасить точки в зависимости от того, находятся они в круге или нет, но я еще не нарисовал круг.

Код: Выделить всё

from matplotlib import pyplot as plt
import numpy as np

class lattice:

def __init__(self, L):
self.L = L
self.positions = np.array([[[i, j] for i in range(L)] for j in range(L)])

def draw_lattice(self, filename):
X = self.positions[:, :, 0].flatten()
Y = self.positions[:, :, 1].flatten()
plt.scatter(X, Y, s=10)
plt.xticks([])
plt.yticks([])
plt.title("Lattice")
plt.savefig(filename)

def dist_centre(self):
x0, y0 = np.random.randint(0, self.L), np.random.randint(0, self.L)
self.c0 = (x0, y0)
self.distance = np.zeros((self.L, self.L))

for i in range(self.L):
for j in range(self.L):
x = self.positions[i, j, 0]
y = self.positions[i, j, 1]
# Distance with periodic boundary conditions.
Dx = -self.L/2 + ((x0-x)+self.L/2)%self.L
Dy = -self.L/2 + ((y0-y)+self.L/2)%self.L
dist = np.sqrt(Dx**2 + Dy**2)
self.distance[i, j] = dist

def draw_zone(self, filename, R):
colormap = np.where(self.distance 

Подробнее здесь: [url]https://stackoverflow.com/questions/79180528/draw-a-circle-with-periodic-boundary-conditions-matplotlib[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Нарисуйте круг с периодическими граничными условиями matplotlib
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Нарисуйте круг с периодическими граничными условиями matplotlib
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • DBSCAN Python с периодическими граничными условиями
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Python DBSCAN кластеризация с периодическими граничными условиями
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Решение нелинейной системы ОДУ с граничными условиями на Python
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»