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

#python-3.x #performance #arraylist #plot #grid

#python-3.x #Производительность #arraylist #график #сетка

Вопрос:

Я только начал изучать CFD, мне дали задание сгенерировать точку сетки для различных замкнутых структур, таких как прямоугольник, треугольник и круг, и условие состоит в том, что я не предполагаю использовать встроенные функции высокого класса в python.

Здесь я попытался получить точки сетки для прямоугольной структуры.
Было бы очень любезно с вашей стороны, если бы вы могли предложить какой-либо способ улучшить код для генерации точек сетки.
Возможно, мне потребуется сгенерировать 100 000 точек.

Вот моя попытка

 import numpy as np
import matplotlib.pyplot as plt

# create x point on horizonatal line
xinitial=0;xfinal=5;xnum=5
xi=np.linspace(xinitial,xfinal,num=xnum)
# print("n xi= n",xi,"n"*2)

# create y point on vertiacl line
yinitial=0;yfinal=5;ynum=5
yi=np.linspace(yinitial,yfinal,num=ynum)
# print("n yi= n",yi,"n"*2)

xygrid =np.array([[xa ,ya] for xa in xi for ya in yi])
# print("n xygrid coordinates= n",xygrid,"n"*2)

xgrid, ygrid = xygrid.T
# print("n xgrid coordinates= n",xgrid,"n"*2)
# print("n ygrid coordinates= n",ygrid,"n"*2)

xmin=xinitial-2;xmax=xfinal 2
ymin=yinitial-2;ymax=yfinal 2

axes = plt.gca()
axes.set_xlim([xmin,xmax])
axes.set_ylim([ymin,ymax])
plt.scatter(xgrid,ygrid)
plt.show()
  

Комментарии:

1. Просто реализуйте point in shape тест для каждого и распараллеливайте циклы. Именно так в настоящее время работают программные растеризаторы. Подобные растеризации scanline устарели IMHO с нашими многоядерными компьютерами и тем более со случайными выборками.

2. @ Dragon Energy, спасибо за ответ. Я должен был упомянуть, что я новичок в python. Я буду работать над этим, еще раз спасибо