日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python绘制一个圆_Python在网格上绘制一个填充的“圆”

發布時間:2025/4/5 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python绘制一个圆_Python在网格上绘制一个填充的“圆” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你能提供一個在任意位置和半徑的網格中繪制圓(ish)形狀的有效算法嗎?在. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . o O o . . . . . . . . . . . . . . . . . . . .

. . . . O O O O O . . . . . . . . . . . . . . . . . . .

. . . o O O O O O o . . . . . . . . . . . . . . . . . .

. . . O O O O O O O . . . . . . . . . . o O o . . . . .

. . . o O O O O O o . . . . . . . . . o O O O o . . . .

. . . . O O O O O . . . . . . . . . . O O O O O . . . .

. . . . . o O o . . . . . . . . . . . o O O O o . . . .

. . . . . . . . . . . . . . . . . . . . o O o . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

我用這個來找路。它是對更精細解析的圖形場的低分辨率抽象。這些形狀可以作為塊來避免。在

請記住,我希望能夠使用它來快速索引塊所在的2d數組。在

^{pr2}$

因此,“繪制”圓將類似于將值設置為塊:self.map[x][y] = PATH_COST_PROX1

繪制字段如下所示:def printme(self):

""" Print the map to stdout in ASCII."""

for y in reversed(range(self.ymax)):

for x in range(self.xmax):

if self.map[x][y] >= PATH_COST_PROX0:

print 'O',

elif self.map[x][y] >= PATH_COST_PROX1:

print 'o',

else:

print '.',

print ''

編輯:這是我最初的(可恥的)嘗試。我用手在方格上畫出圓圈,然后記下半徑每增加一點就加起來。這不是一個可怕的想法,但公認的答案要優雅得多。在COVER_MAP = [

[(0,0)],

[(0,1),(1,0),(0,-1),(-1,0)],

[(1,1),(1,-1),(-1,-1),(-1,1)],

[(0,2),(2,0),(0,-2),(-2,0)],

[(1,2),(2,1),(2,-1),(1,-2),(-1,-2),(-2,-1),(-2,1),(-1,2)],

[(0,3),(2,2),(3,0),(2,-2),(0,-3),(-2,-2),(-3,0),(-2,2)],

[(1,3),(3,1),(3,-1),(1,-3),(-1,-3),(-3,-1),(-3,1),(-1,3)]

]

def set_blocked(self, p, radius):

"""

Set the blocked state of a coordinate. Takes an integer value that

represents the cost of the block

"""

#radius = radius * 2

if radius > len(COVER_MAP)-1:

radius=len(COVER_MAP)-1

#print "point:",p," radius:",radius

(cx,cy) = p

for i in range(len(COVER_MAP)):

for j in range(len(COVER_MAP[i])):

(rx,ry) = COVER_MAP[i][j]

x = cx + rx

y = cy + ry

if x >= 0 and x < self.xmax and y >= 0 and y < self.ymax:

if i < radius:

self.map[x][y] = PATH_COST_PROX0

elif i == radius:

self.map[x][y] = PATH_COST_PROX1

elif i == radius + 1:

self.map[x][y] = PATH_COST_PROX2

elif i == radius + 2:

self.map[x][y] = PATH_COST_PROX3

elif i == radius + 3:

self.map[x][y] = PATH_COST_PROX4

我的確有一個優點,就是可以在原來的圓圈周圍形成一個成本較低的模糊環,這是下面的記憶算法沒有的,但可以加以調整來提供。在

總結

以上是生活随笔為你收集整理的python绘制一个圆_Python在网格上绘制一个填充的“圆”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。