理策的RhinoPython教程第一课

理策的RhinoPython教程

Class 1

打开编辑器

打开Rhino Python Editor,输入指令EditPythonScript,应该会弹出Rhino自带的Python编辑器,之后的代码都写在这里。

1常用几何形的创建

创建绝大部分的Rhino几何形都依赖于rhinoscriptsyntax这个库,所以一开始先导入这个库。

import意为导入,as的意思是代称,之后的程序里需要引用这个库的时候就可以直接使用as之后的名字,不用打全称。

这个时候打rs.后面会弹出包含库中指令的下拉菜单,多打几个字母会自动检索相关命令。

这里我们先创建一个点,输入rs.AddPoint(

打出左括号以后,下方的output页应该会出现说明文字,告诉你这个命令要求的输入值和产生的返回值,以及示例,我们就按示例做。

输入完之后,点击编辑器上方工具栏的绿色箭头(Run),可以看到成功创建了坐标为(1,2,3)的点。

同理可以创建其他类型的图形,命令可以在左边的索引里面查找。

2创建多个几何形体(循环)

输入for i in (0,1,2,3,4,5,6):之后回车,冒号后回车会自动进四格,在python中,表示层级,同层级的代码会依次运行。

For in循环非常常用,含义是使用i代指并遍历后面这个列表里的所有元素,i会一次被赋予0,1,2,3,4,5,6的值,每一次被赋值之后,都会以这个值运行下面这个层级的代码,运行应该会产生7个点,即(0,0,0),(1,0,0),(2,0,0),(3,0,0),(4,0,0),(5,0,0),(6,0,0)。

我们经常会使用range函数替代简单数列,比如之前这个例子可以简化,结果是一样的。

很多时候单次循环不能满足我们的需要,就会进行循环嵌套,比如三层嵌套创造一个点阵。

(注1:rs.AddPoint()中使用三个数或小括号括起来的数(tuple)或中括号括起来的数(list)都可以,视情况和便捷程度,具体的区别自己去查)

3复杂数学运算

比较简单的运算内置了,比如加减乘除,但是稍高级的运算和函数需要引入数学库。

需要注意的是,math中的三角函数运算使用的是弧度制。

(注2:python中不需要声明变量类型,类型取决于第一次赋值的值,等号左边是等待赋值的变量,右边是要赋给它的量。如果这个变量名是第一次出现,那么就会创建它)

我们可以创建一个示例,会得到在一个圆上的一些点。

作业

基础作业1:创建一个球面坐标系点阵(想象作出地球仪上经纬线的交点)

基础作业2:假设B点绕A点作匀速圆周运动,运动半径为10,角速度1/70 rad/s,C点绕B点作匀速圆周运动,半径为5,角速度1/40rad/s, D点绕C点进行匀速圆周运动,半径为2,角速度1/25 rad/s,试求三小时中D点的运动轨迹。

提高作业2(针对预习了function的同学):上题的基本逻辑不变,一共10个点,每个点绕列表中的前一个点做圆周运动,半径缩小一半,角速度变大一倍,求第十个点的轨迹。

很高作业2(针对预习了class的同学):上题逻辑不变,半径的缩小程度与角速度的变大程度与当前点和其所绕中心点的距离相关,关系自定,求第十个点的轨迹。

作业答案下节课发。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181102G1SGT100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券