精华内容
下载资源
问答
  • 游戏中经常会需要类似的素材作为符文图案或者是特效的纹理,总体的思路就是先设计一个图形对象,然后制作一个路径,再将图形对象沿路径摆放。 下面我们看一下在inkscape中如何实现这个效果: 1. 图形对象 本例中的...

    效果图

    效果图

    游戏中经常会需要类似的素材作为符文图案或者是特效的纹理,总体的思路就是先设计一个图形对象,然后制作一个路径,再将图形对象沿路径摆放。

    下面我们看一下在inkscape中如何实现这个效果:

    1. 图形对象

    本例中的图形对象很简单,如果图形是多个对象组成的要将它们群组起来(快捷键:Ctrl + G)

    图形对象

    2. 绘制路径

    路径可以通过绘制对象然后用其轮廓线转化为路径,也可以直接用贝塞尔工具等绘制

    路径

    3. 选择图形对象并将其摆放在层的最顶部(快捷键:HOME),然后选择图形对象和路径

    选择图形对象和路径

    4. 将图形对象散布在路径上

    命令:扩展->从路径生成->散布
    将图形对象散布在路径上

    可以实时预览,确认无误后点击确认即可。

    5. 删除路径

    最终结果

    展开全文
  • #房子要使用到家具,被使用的类通常先开发 ...#主程序只负责创建房子对象和家具对象 #让房子对象调用add_item方法将家具添加到房子中 #面积计算、剩余面积、家具列表等处理都被封装到房子类的内部  
    #房子要使用到家具,被使用的类通常先开发
    class HouseItem:
        def __init__(self,name,area):
            self.name=name
            self.area=area
        def __str__(self):
            return "[%s] 占地 %.2f" % (self.name,self.area)
    
    class House:
        #只有需要外部传递的参数,才要在初始化函数中定义形参
        def __init__(self,house_type,area):
            self.house_type=house_type
            self.area=area
            #剩余面积
            self.free_area=area
            #家具名称列表
            self.item_list=[]
    
        def __str__(self):
            #Python 能够自动的将一对括号内部的代码连接在一起
            return ("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
                    % (self.house_type,self.area,
                       self.free_area,self.item_list))
    
        def add_item(self,item):
            print("要添加%s" % item)
            #1.判断家具的面积
            if item.area > self.free_area:
                print("%s的面积太大了,无法添加" % item.name)
                return #只要return执行,下发代码就不会继续执行
            #2.将家具的名称添加到列表中
            self.item_list.append(item.name)
            #3.计算剩余面积
            self.free_area-=item.area
    
    #1.创建家具
    
    bed=HouseItem('席梦思',50)
    chest = HouseItem('衣柜',60)
    table = HouseItem('餐桌',20)
    
    # print(bed)
    # print(chest)
    # print(table)
    
    #2.创建房子对象
    my_home = House("两室一厅",100)
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    print(my_home)
    
    #主程序只负责创建房子对象和家具对象
    #让房子对象调用add_item方法将家具添加到房子中
    #面积计算、剩余面积、家具列表等处理都被封装到房子类的内部

     

    展开全文
  • 实例一:摆放家具 需求如下: 家具(HouseItem)有名字和占地面,其中 席梦思(bed) 占地 4 平米 衣柜(chest) 占地 2 平米 餐桌(table) 占地 1.5 平米 打印出家具名称呵占地面积 分析:从以上需求我们可以看出 类是家具...

    实例一:摆放家具
    需求如下:

    家具(HouseItem)有名字和占地面,其中
    席梦思(bed) 占地 4 平米
    衣柜(chest) 占地 2 平米
    餐桌(table) 占地 1.5 平米
    打印出家具名称呵占地面积

    分析:从以上需求我们可以看出 类是家具(HouseItem)
    该类有两个属性:家具name和占地面积area
    可以通过__init__()方法设置属性的初始值
    可以通过__str__()方法打印需要的信息

    所以分析结果见下表:
    在这里插入图片描述
    代码如下:

    class Houseitem:
          def __init__(self,name,aera):
              self.name = name 
              self.area = area
          def __str__(self):
              return "[%s]  占地面积%.2f"  %(self.name,self.area)
    
    bed = Houseitem("席梦思",4) #bed对象实例化,使这个对象具体化,具有两个属性,分别是name属性叫席梦思,area属性是4
    print(bed) #打印bed这个对象,输出—__str__()中传入的内容
    chest = Houseitem("衣柜",2) #chest对象实例化,使这个对象具体化,具有两个属性,分别是name属性叫衣柜,area属性是2
    print(chest)#打印chest这个对象,输出—__str__()中传入的内容
    table = Houseitem("table",1.5)#table对象实例化,使这个对象具体化,具有两个属性,分别是name属性叫书桌,area属性是1.5
    print(table)#打印table这个对象,输出—__str__()中传入的内容
    #输出结果
    #[席梦思]  占地面积4.00
    #[衣柜]  占地面积2.00
    #[书桌]  占地面积1.50
    

    实例二:将家具添加到房子中
    需求如下:
    将实例一中生成的家具添加到房子中,
    打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表

    分析:
    家具已经通过上一个Houseitem()类已经实现
    房子需要通过一个房子类生成
    需要一个方法将家具添加到房子中
    需要四个属性来表示房子的户型、总面积、剩余面积、家具名称列表
    属性 1. 房子的户型,需要外部输入实际参数,所以需要定义一个形参来给房子的户型传入值
    属性 2. 总面积,需要外部输入实际参数,所以需要定义一个形参来给总面积传入值
    属性 3. 剩余面积,剩余面积是通过计算得来,仅需要一个表示剩余面积的属性代表剩余面积的值,无形参
    属性 4.家具名称列表,家具名称列表是通过调用方法来实现列表的添加,所以仅需要一个属性来表示列表,无形参

    str()方法打印出户型、总面积、剩余面积、家具名称列表
    init()方法输入房子的户型 和总面积
    __add_item()方法来实现将家具添加到房子中

    所以分析结果见下表:
    在这里插入图片描述
    代码如下

    calss House:
          def __init__(self,house_type,area):
             self.house_type = house_type
             self.area = area
             self.free_area = free_area  #定义一个剩余面积属性
             self.item_list = []  #空列表用来存放放入房子这个对象中的家具
         def __str__(self):
             return (" 房子户型:%s \n 总面积: %.2f \n  剩余面积:%.2f \n 家具名称列表:%s \n" 
             %(self.house_type,self.area,
             self.free_area,self_item_list))
         def add_item(self,item):
             print("要添加%s",item)
             if item.area > self.area:
                print("%s面积太大,无法添加"%item.name)
             return
             self.item_list.append(item.name)
             self.free_area -=item.area
    
    bed = Houseitem("席梦思",4)
    print(bed)
    #创建房子对象
    my_home = House("两室一厅"60)
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    print(my_home)
    
    
    

    小结

    创建了一个 房子类,使用到 init 和 str 两个内置方法
    准备了一个 add_item 方法 准备添加家具
    使用 房子类 创建了 一个房子对象
    让 房子对象 调用了三次 add_item 方法,将 三件家具 以实参传递到 add_item 内部
    本文参考链接
    如有侵权,联系删除

    展开全文
  • 面向对象基础练习——摆放家具 需求 房子(House) 有 户型、总面积 和 家具名称列表 新房子没有任何的家具 家具(HouseItem)有 名字 和 占地面积,其中 席梦思(bed) 占地 4 平米 衣柜(chest) 占地 2...

    面向对象封装案例I——摆放家具

    需求

    1. 房子(House)户型总面积家具名称列表
    • 新房子没有任何的家具
    1. 家具(HouseItem)有 名字占地面积,其中
    • 席梦思(bed) 占地 4 平米
    • 衣柜(chest) 占地 2 平米
    • 餐桌(table) 占地 1.5 平米
    1. 将以上三件 家具 添加房子
    2. 打印房子时,要求输出:户型总面积剩余面积家具名称列表

    在这里插入图片描述
    这里有两个类,一个家具(HouseItem),一个房子(House);
    家具类中有两个属性:name和area;
    房子类中有四个属性:户型,总面积,剩余面积以及家具名称列表,同时房子类中有一个添加家具(add_item)的方法。

    剩余面积

    1. 在创建房子对象时,定义一个 剩余面积的属性初始值和总面积相等
    2. 当调用 add_item 方法,向房间 添加家具 时,让 剩余面积 -= 家具面积

    思考:应该先开发哪一个类?

    答案 —— 家具类

    1. 家具简单
    2. 房子要使用到家具,被使用的类,通常应该先开发

    代码演示:1、先写家具类

    class HouseItem:
    
        def __init__(self, name, area):
          # self.属性 = 形参;上面的name和area为形参
    		self.name = name
            self.area = area
    
        def __str__(self):
            return "[%s] 占地 %.2f" % (self.name, self.area)
    
    # 1. 创建家具
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 2)
    table = HouseItem("餐桌", 1.5)
    
    print(bed)
    print(chest)
    print(table)
    

    代码演示:2、写完家具类后再写房子类

    class HouseItem:
    
        def __init__(self, name, area):
    		
    	   #self.属性 = 形参;上面的name和area为形参
            self.name = name
            self.area = area
    
        def __str__(self):
            return "[%s] 占地 %.2f" % (self.name, self.area)
    
    class House:
    
        def __init__(self, house_type, area):
            self.house_type = house_type
            self.area = area
    
            # 剩余面积,刚开始的时候房子是没有家具的占地面积的,所以free_area即area
            self.free_area = area
     
            # 家具名称是一个空列表
            self.item_list = []
    
        def __str__(self):
            # Python中的一个小技巧:能够自动的将一对括号内部的代码连接在一起
            return ("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
                    % (self.house_type, self.area,
                       self.free_area, self.item_list))
    
        def add_item(self, item):
            print("要添加 %s" % item)
    
    
    # 1. 创建家具
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 2)
    table = HouseItem("餐桌", 1.5)
    
    print(bed)
    print(chest)
    print(table)
    
    # 2. 创建房子对象
    my_home = House("两室一厅", 60)
    
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    
    print(my_home)
    

    小结

    1. 创建了一个 房子类,使用到 __init____str__ 两个内置方法
    2. 准备了一个 add_item 方法 准备添加家具
    3. 使用 房子类 创建了 一个房子对象
    4. 房子对象 调用了三次 add_item 方法,将 三件家具 以实参传递到 add_item 内部

    代码演示:3、最后完成添加家具

    需求

    • 1> 判断 家具的面积 是否 超过剩余面积如果超过,提示不能添加这件家具
    • 2> 将 家具的名称 追加到 家具名称列表
    • 3> 用 房子的剩余面积 - 家具面积
    class HouseItem:
    
        def __init__(self, name, area):
            self.name = name
            self.area = area
    
        def __str__(self):
            return "[%s] 占地 %.2f" % (self.name, self.area)
    
    class House:
    
        def __init__(self, house_type, area):
            self.house_type = house_type
            self.area = area
    
            # 剩余面积
            self.free_area = area
    
            # 家具名称列表
            self.item_list = []
    
        def __str__(self):
            # Python 能够自动的将一对括号内部的代码连接在一起
            return ("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
                    % (self.house_type, self.area,
                       self.free_area, self.item_list))
    
        def add_item(self, item):
            print("要添加 %s" % item)
            # 1. 判断家具的面积,这里的item.area要理解清楚。
            if item.area > self.free_area:
                print("%s 的面积太大了,无法添加" % item.name)
                return
    
            # 2. 将家具的名称添加到列表中
            self.item_list.append(item.name)
    
            # 3. 计算剩余面积
            self.free_area -= item.area
    
    # 1. 创建家具
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 3)
    table = HouseItem("餐桌", 2)
    
    print(bed)
    print(chest)
    print(table)
    
    # 2. 创建房子对象
    my_home = House("两室一厅", 60)
    
    # 3.添加了三个对象
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    
    print(my_home)
    

    最后小结

    • 主程序只负责创建 房子 对象和 家具 对象
    • 房子 对象调用 add_item 方法 将家具添加到房子
    • 面积计算剩余面积家具列表 等处理都被 封装房子类的内部
    ———————————————————————————————————————————————————————— 博客记录日常学习内容~
    展开全文
  • class HouseItem: def __init__(self, name, area): self.name = name self.area = area def __str__(self): return "[%s] 占地 %.2f" % (self.name, self.area) # 1. 创建家具 bed...
  • 浮生有梦三千场 穷尽千里诗酒荒前言:Window 对象 Window 对象表示浏览器中打开的窗口。如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window ...
  • 封装是面向对象编程的一大特点面向对象编程的第一步—— 将属性和方法封装到一个抽象的类中外界使用类创建对象,然后让对象调用方法对象方法的细节都被封装在类的内部需求房子(House)有户型、总面积和家具名称列表...
  • 创建房子对象 my_home = House("两室一厅",100) my_home.add_item(bed) my_home.add_item(chest) my_home.add_item(table) print(my_home) #主程序只负责创建房子对象和家具对象 #让房子对象调用add_item方法将家具...
  • window对象语法:window.open(pageURL,name,parameters)功能:打开一个新的浏览器窗口或查找一个已命名的窗口参数说明:pageURL:子窗口路径name:子窗口句柄(name声明了新窗口的名称,方便后期通过name对子窗口进行...
  • 摆放家具3.1 创建家具3.2 创建房间3.3 添加家具3.4 小结 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 ...
  • # 创建主窗口对象 root = tkinter.Tk() # 设置窗口大小(最小值:像素) root.minsize(300,300) # 创建一个按钮组件 btn = tkinter.Button(root,text = '屠龙宝刀,点击送') btn.pack() # 加入消息循环 root.mainloop...
  • 商品摆放问题

    2019-11-22 16:54:31
    基本思路就是看顾客是否买了a商品,在买了a 商品的条件下 ,看是否买b 商品, 而这个记录就是通过 rule_valid = defaultdict(int) 这个对象来记录每个买的东西的情况。 所以就有几种情况: 1: 既没买a 也没买b ,...
  • 案例二、摆放家具 创建家具 创建房间以及添加家具 案例三、士兵突击 封装 封装是面向对象编程的一大特点 面向对象编程的第一步——将属性和方法封装到一个抽象的类中 外界使用类创建对象,然后让对象调用方法...
  • 当激活布置浏览器时,您可以快速地访问您的项目中存在的所有可放置对象,不必像使用 内容浏览器 那样必须浏览到特定的项目文件夹。 摆放模式使得添加特殊类型的Actor变得更加容易,比如光源,如果不使用该...
  • Java里类和对象

    2020-05-20 21:32:46
    超市里物品摆放以区为分类;每个去的物品为单个对象。 **类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。 如何创建...
  • python面向对象案例

    2020-10-02 14:21:20
    python面向对象案例身份运算符私有属性和私有方法python中私有的实质对外提供访问私有属性的接口(方法)小明爱跑步案例1)需求2)分析3)实现摆放家具案例1)需求2)分析3)实现家具类4)实现房子类士兵突击案例1)...
  • # 创建主窗口对象 root = tkinter.Tk() # 设置窗口大小(最小值:像素) root.minsize(300,300) # 创建一个按钮组件 btn = tkinter.Button(root,text = '屠龙宝刀,点击送') btn.pack() # 加入消息循环 ...
  • Unity3D Editor之快捷创建及摆放模型 最近学习了一下Unity Editor的一些基础知识,在学习的过程中实现了一个小功能,对其中部分知识的运用。 通过这两个脚本可以实现简单的在Scene窗口展现四种类型的按钮,选择一种...
  • Java_对象初始化

    2017-04-06 18:09:24
    对象进行初始化是有一定顺序的,无论在定义的时候各个成员的摆放位置如何.首先是静态成员和对象,然后是非静态成员和对象,最后才运行构造器. 3.静态成员和对象有且只有一次初始化过程,这个过程发生在第一次创建对象...
  • 面向对象(二)

    2020-05-22 10:21:04
    摆放家具3.1 创建家具3.2 创建房间3.3 添加家具3.4 小结4. 士兵突击4.1 开发枪类4.2 开发士兵类5. 身份运算符is 与 == 区别: 1. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432
精华内容 172
关键字:

对象摆放