0 引言
由于要使用rendering模块搭建自己的仿真环境,但是对于画图库不是很熟悉,没办法得心应手。所以在这里拿来rendering模块进行解析,以求更便捷地画出自己的环境。
建议使用IPython导入rendering模块,然后试验各个函数。
1 源码解析
文件地址:gym/gym/envs/classic_control/rendering.py
2 源码总结
最重要的类:Viewer提供了画布的功能
两个基类:Geom和Attr,分别代表几何体和几何体的属性
Geom的派生类: Point: 点类
FilledPolygon:填充多边形类
PolyLine:线段连接多边形
Line:线段类
Image:图像类
Compound:用于合成复杂几何体的类
Attr的派生类: Transform:运动属性
Color:颜色属性
LineStyle:线型属性
LineWidth:线宽属性
2.1 如何绘制几何体呢?
rendering模块提供了以下几种绘图方法:
make_circle:画圆,只需要指定半径,圆心默认为画布原点
make_polygon: 画多边形,需要给顶点列表和是否填充标志
make_polyline:画非填充的多边形,只需要顶点列表
make_capsule: 画一个胶囊形状的几何体
绘图还需要指定颜色:set_color(r,g,b)
线宽和线型等属性,需要使用:add_attr()
2.2 如何控制几何体移动呢?
通过为几何体设置Transform属性对象,指定平移、旋转和缩放,进行移动。
并使用add_attr()添加移动属性。
2.3 如何将绘制的几何体添加到画布上?
Viewer类提供了两个方法:
add_geom(): 一直显示的几何体的添加方法
add_onetime(): 只显示一次的几何体的添加方法
2.4 画布坐标系是怎么样的?
默认情况下,原点在左下角,向右为x轴,向上为y轴。
还可以自己指定:
set_bounds(left, right, bottom, top)
2.5 如果库中没有自己想要的几何体,怎么办呢?
可以通过几何体组合成自己想要的几何体,并使用Compound类来合成。这样就可以把自己的几何体作为一个整体,直接使用Geom类设置颜色、添加属性的方法了。