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在网格上绘制一个填充的“圆”相关推荐
- python使用np.logspace函数在对数刻度上创建一个对数等距数组实战:在对数刻度上创建一个数组(指定数值个数以及是否包含末尾界值)、使用不同的基数(底数)在对数刻度上构建等距数组、可视化
python使用np.logspace函数在对数刻度上创建一个对数等距数组实战:在对数刻度上创建一个数组(指定数值个数以及是否包含末尾界值).使用不同的基数(底数)在对数刻度上构建等距数组.可视化 目 ...
- 微机原理:编写一个源程序,在键盘上按一个键,将从AL返回的ASCII码值显示出来,如果按下ESC键则程序退出。
微机原理:编写一个源程序,在键盘上按一个键,将从AL返回的ASCII码值显示出来,如果按下ESC键则程序退出. DATAS SEGMENT msg db 'Input ',0dh,0ah,'$' te ...
- 用python画多个圆_Python用图例在网格上绘制多个圆
我想在一个N乘M的网格上画出不同颜色和相同大小的圆.在x,y位置,可以是一个圆或什么都不是.在 我希望每个专栏都有一个x标签(这将是一个星期),和一个ylabel(这将是一个主题).在 现在,我找到了 ...
- 用python绘制叠加等边三角形_python 叠加等边三角形的绘制的实现
题目:使用turtle库绘制叠加等边三角形. 要分享: 屏幕应该是个叠加三角,一岗是一个分角.不是樽前爱惜身,佯狂难免假成真.曾因酒醉鞭名马,生怕情多累美人. 如何使用python turtle 画一 ...
- python画五角星代码_Python第八课 绘制五角星1.0
第八课 绘制五角星1.0 学习目标: 1. 了解并学会使用turtle库. 2. 复习while循环. 教学重难点: turtle库的使用. 学习内容: 案例2: 使用turtle 库在Python中 ...
- python画棒棒糖程序_python之turtle简单绘制学习
一.方法 1.forward() | fd():向前移动指定的距离.参数:一个数字(integer or float)). turtle.forward(25) 2.backward() | bk() ...
- 如何用python做一个时钟_Python使用turtle库制作一个时钟
前言 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在 ...
- 如何用python画七彩蟒蛇_Python实现七彩蟒蛇绘制实例代码
本文主要研究的是Python编程turtle的实例,绘制一个七彩蟒蛇..具体如下. 第2周的课后练习里,有一道题目,要求修改"蟒蛇绘制"程序,对Python 蟒蛇的每个部分采用不同 ...
- python画正切函数_python的pygal模块绘制反正切函数图像方法
python的pygal模块绘制反正切函数图像方法 python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块绘制反 ...
最新文章
- 图标化java_java最小化到托盘显示图标实现
- Filter及FilterChain的使用具体解释
- 找出网络停机的四大原因—Vecloud微云
- Exception in thread main java.lang.NoSuchMethodError
- C# 与java区别总结 收集
- linux java maven_Linux安装java环境和maven
- Python pip freeze获取安装的Python包并使用pip install -r还原到这些包环境(转载)
- Java Swing线程之SwingUtilities.invokeLater解释
- php 接口类,抽象类 的实际作用
- 毕业设计——英文文献下载
- esxi 创建虚拟交换机_对vSphere虚拟交换机的理解
- linux 网卡 mac 配置文件,Linux脚本程序自动修改网卡配置文件中的MAC地址
- 论文阅读|用于不同问题的MADDPG算法框架系列论文汇总
- 2022谈谈手机充电头/快充头/电源适配器
- 三菱PLC伺服XZ轴定位程序 程序都有注释、注释全面,用的三菱FX3U系列plc
- 达奇机器人编程学院_Wonder Workshop Dash Robot 达奇STEM编程机器人 中英文双语版
- Toggle Buttons(一)
- leetcode844 比较含退格的字符串(python)
- 一本超越期待的 C++ 书——简评 Boost程序库完全开发指南 深入C++ 准 标准库
- CheriABI简介
热门文章
- html 屏蔽蓝色电话,html – 在Chrome扩展程序中停用文字字段蓝色突出显示?
- 一起学nRF51xx 20 - 移植SDK蓝牙例程
- 图像配准代码(包含matlab/opencv C++)
- Android 4.0 Notification
- android4.0 系统广播集
- proc文件的简单读写
- 在隧道内放置多个地感线圈,车辆通过时、对通过的相邻两个线圈的脉冲信号数据进行实时采集,首先利用云模型算法,计算得到车速的估计值
- 基于SNN脉冲神经网络的FPGA实现介绍
- maven deploy jar包到远程仓库400
- Struts2配置文件【代码库】