关闭

5.7 - Simple Car Example Using Functions

383人阅读 评论(0) 收藏 举报
分类:
import maya.cmds as cmds

def create_car(name, length =2 , width = 1):
    body = create_body(length, width)
    tires = create_tires(length, width)
    final_name = assemble_car(name, body, tires)
    
    cmds.select(clear=True)
    
    return final_name
    
def create_body(length, width):
    body = cmds.polyPlane( w = length, h = width, name = "body")
    return body[0] # transform node   
 
def create_tires(body_length, body_width):
    tire_width = 0.25 * body_width
    tire_radius = 0.25 * body_length
    x_pos = 0.5 * body_length
    z_pos = 0.5 * body_width + 0.5 * tire_width 
    
    
    fl_tire = create_tire("front_left_tire", tire_width, tire_radius, x_pos, 0, -z_pos)
    fr_tire = create_tire("front_right_tire", tire_width, tire_radius, x_pos, 0, z_pos)
    rl_tire = create_tire("rear_left_tire", tire_width, tire_radius, -x_pos, 0, -z_pos)
    rr_tire = create_tire("rear_right_tire", tire_width, tire_radius, -x_pos, 0, z_pos)
    
    return [fl_tire, fr_tire, rl_tire, rr_tire]
    
def create_tire(name, width, radius, tx, ty, tz):
    tire = cmds.polyCylinder(h = width, r = radius, ax = (0, 0, 1), sc = True, name = name)
    cmds.setAttr("{0}.translate".format(tire[0]), tx, ty, tz)
    return tire[0] 
    
def assemble_car(name, body, tires):
    body_grp = cmds.group(body, name = "body_grp")
    tires_grp = cmds.group(tires, name = "tires_grp")
    
    car_grp = cmds.group(body_grp, tires_grp, name = name)
    return car_grp
                          
    
    
if __name__ == "__main__":
    final_name = create_car("test_car")
    print(" Car created: {0}".format(final_name))

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

学习Scrapy入门

Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。 所谓网络爬虫,就是一个在网上到处或定向抓取数据的...
  • universe_ant
  • universe_ant
  • 2017-02-24 22:44
  • 199

2018年,新的开始

希望自己能保持每周至少更新一次代码的频率,从这次开始安装tensorflowtheano和keras的过程 说明 卸载 Anaconda安装 安装深度学习相关 配置环境操作过程代码 python测试代...
  • u013028114
  • u013028114
  • 2017-12-31 20:34
  • 249

Mysql 5.7密码过期修改密码

今天在运行项目的时候出现:“Your password has expired. To log in you must change it using a client that supports e...
  • u012365843
  • u012365843
  • 2015-09-14 11:17
  • 2869

一种比较简单的web端SSO方案

这是种比较简单易行单点登录(SSO Single sign-on方案,只有auth token,没有request token,自己家的系统集成提供一点思路。文章的阅读对象需要比较熟悉web开发,因为...
  • lzz957748332
  • lzz957748332
  • 2017-02-25 18:50
  • 881

神经网络与深度学习(第一章)(二)

Perceptrons 感知器
  • forrestyanyu
  • forrestyanyu
  • 2017-01-24 08:55
  • 311

sklearn 源码分析系列:neighbors(3)

sklearn 源码分析系列:neighbors(3)by DemonSonggithub源码链接(https://github.com/demonSong/DML) by\space DemonSo...
  • u014688145
  • u014688145
  • 2017-03-21 16:12
  • 1787

初探Spring - IOC原理

一、IOC是什么 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来降低代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency...
  • u013371163
  • u013371163
  • 2017-03-05 17:33
  • 116

HOTween——简单使用

Hotween是一个插值插件,都是对位移,缩放,旋转,颜色等数值进行插值,各有各的优势。如果做一般常见的动画建议使用Hotween,但是遗憾的是Hotween不支持路径动画编辑,如果支持就完美了,不过...
  • zhaoguanghui2012
  • zhaoguanghui2012
  • 2014-11-25 10:23
  • 1014

提取assets.car中的图片 .car文件的解压

cartool,Mac下的命令行小工具,能够将Assets.car文件解包到指定文件夹。目标文件夹需要事先创建好。该工具使用私有API中的CoreUI进行开发。 下载地址:https://github...
  • donwei8
  • donwei8
  • 2016-08-09 13:41
  • 3420

初识C++之封装

学习C++不得不说到C++的三大特性:封装、继承、多态,今天就先来剖析一下他的封装性。 1、什么是封装   封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数...
  • ljx_5489464
  • ljx_5489464
  • 2016-04-12 21:21
  • 390
    个人资料
    • 访问:513879次
    • 积分:11271
    • 等级:
    • 排名:第1618名
    • 原创:615篇
    • 转载:99篇
    • 译文:0篇
    • 评论:99条
    文章分类
    最新评论