深入浅出强化学习--原理入门(郭宪博士版本)--第二章作业(包含render画图函数参数学习)

 这里有几个我自己学习到的函数以及参数知识,用在了下面的代码段里面:(坐标都是先纵坐标,横坐标)

创建容器:rendering.Viewer(容器的宽, 容器的高)
创建线条:rendering.Line((右端纵,右端横),(左端纵,左端横))或((上端纵,上端横),(下端纵,下端横))
创建矩形:rendering.FilledPolygon([右下,右上,左下,左上])#这里的坐标按照(纵,横)
创建一个圆:rendering.make_circle(直径)
形状中心平移:rendering.Transform(translation=(纵, 横))
平移赋值:self.几何对象名称.add_attr(self.transform)
还有一个就是render函数一定要在最后有一个返回:return  self.viewer.render()
from gym.envs.classic_control import rendering
import gym

class MiGong(gym.Env):
    def __init__(self):
        #创建容器,rendering.Viewer参数为(宽,高)
        self.viewer = rendering.Viewer(800, 600)

    def render(self, mode="human", close=False):
        #12根线rendering.Line按照右坐标到横坐标给值,坐标定值时按照(纵,横)给值
        self.line1 = rendering.Line((500, 500), (250, 500))
        self.line2 = rendering.Line((500, 450), (250, 450))
        self.line3 = rendering.Line((500,400), (250, 400))
        self.line4 = rendering.Line((500,350), (250, 350))
        self.line5 = rendering.Line((500,300), (250, 300))
        self.line6 = rendering.Line((500,250), (250, 250))
        self.line7 = rendering.Line((500,500), (500, 250))
        self.line8 = rendering.Line((450,500), (450, 250))
        self.line9 = rendering.Line((400,500), (400, 250))
        self.line10 = rendering.Line((350,500), (350, 250))
        self.line11 = rendering.Line((300,500), (300, 250))
        self.line12 = rendering.Line((250,500), (250, 250))

        #给线条一个颜色
        self.line1.set_color(0,0,0)
        self.line2.set_color(0,0,0)
        self.line3.set_color(0,0,0)
        self.line4.set_color(0,0,0)
        self.line5.set_color(0,0,0)
        self.line6.set_color(0,0,0)
        self.line7.set_color(0,0,0)
        self.line8.set_color(0,0,0)
        self.line9.set_color(0,0,0)
        self.line10.set_color(0,0,0)
        self.line11.set_color(0,0,0)
        self.line12.set_color(0,0,0)

        #把线段添加在容器里面
        self.viewer.add_geom(self.line1)
        self.viewer.add_geom(self.line2)
        self.viewer.add_geom(self.line3)
        self.viewer.add_geom(self.line4)
        self.viewer.add_geom(self.line5)
        self.viewer.add_geom(self.line6)
        self.viewer.add_geom(self.line7)
        self.viewer.add_geom(self.line8)
        self.viewer.add_geom(self.line9)
        self.viewer.add_geom(self.line10)
        self.viewer.add_geom(self.line11)
        self.viewer.add_geom(self.line12)

        #创建第一个黑色区域,这是按照右下,右上、左上、左下给的值
        self.heikuai_1 = rendering.FilledPolygon([(450, 400), (450, 500), (400, 500), (400, 400)])
        self.heikuai_1.set_color(0, 0, 0)
        self.viewer.add_geom(self.heikuai_1)

        #创建第二个黑色区域,这是按照右下,右上、左上、左下给的值
        self.heikuai_2 = rendering.FilledPolygon([(350, 350), (350, 400), (250, 400), (250, 350)])
        self.heikuai_2.set_color(0, 0, 0)
        self.viewer.add_geom(self.heikuai_2)

        #创建第三个黑色区域,这是按照右下,右上、左上、左下给的值
        self.heikuai_3 = rendering.FilledPolygon([(500, 250), (500, 300), (350, 300), (350, 250)])
        self.heikuai_3.set_color(0, 0, 0)
        self.viewer.add_geom(self.heikuai_3)

        #创建出口--圆
        self.ChuKou = rendering.make_circle(5)
        self.transform = rendering.Transform(translation=(475, 375))
        self.ChuKou.add_attr(self.transform)
        self.ChuKou.set_color(0, 0, 0)
        self.viewer.add_geom(self.ChuKou)

        return  self.viewer.render()

if __name__ == "__main__":
    migong = MiGong()
    while True:
        migong.render()

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值