VPython三维仿真(NO.2) 图像操作与基础模型
场景图像基本操作
可对在浏览器中渲染的场景进行旋转、缩放、平移操作。球体不易看到旋转过程,可使用正方体练习对图像的基本操作,掌握了对场景图像的基本操作后,下一节介绍导入三维模型后可对三维模型进行观察。
对场景操作方法如下:
旋转图像:Ctrl+鼠标左键+拖动光标
缩放图像:Alt+鼠标左键+上下拖动光标 或 鼠标滚轮
平移图像:Shift+鼠标左键+拖动光标
生成正方形的代码如下,生成的场景图像如图1。
from vpython import *
box()
图1
根据以上操作尝试对场景图像旋转、缩放、平移。
基本模型
在https://www.vpython.org/首页(图2)点击Documentation,进入VPython帮助文档(图3)。左侧Choose a 3D Object下拉列表框为VPython中的基础模型,包括箭头arrow、立方体box、圆锥体cone、曲线curve等17种。
图2
图3
基础模型函数不带参数可建立长度为1的模型,如:
sphere() #直径为1的球体box() #边长为1的正方体
几何体模型通常包含两个2个参数,位置pos和轴指向axis,这两个参数接受向量,创建向量函数为:vector(x,y,z)
不同的几何体基础模型包括不同的其他参数,如球体还接受半径radius参数,圆柱体还接受长度length参数。如:
在位置(1,2,1)处绘制半径为0.5的球体,命名为Ball,以后在代码中Ball就代表该球体。
Ball=sphere(pos=vector(1,2,1),radius=0.5)
以下在位置(0,2,1)处绘制半径2,长度15,黄色(vec为标量,三个分量为R、G、B三种颜色)的圆柱体,圆柱体轴线向量为(1,2,3),圆柱体命名为Rod,如图4,图4中的图像为浏览器渲染完成的图像,未对圆柱体进行旋转。
from vpython import *Rod=cylinder(pos=vector(0,2,1),axis=vector(1,2,3),radius=2,length=15,color=vec(1,1,0))
基础模型还包括文字text、标签label、光源light,具体使用方法可参考帮助文档。
图4
复杂模型
最后一种vertex/triangle/quad是构建复杂模型的基础,从外部导入的模型都是由大量的三角形构成。大量三角形顶角相互连接,围成复杂的模型,这也是大多数三维设计软件构建复杂曲面模型和实体的主要方法。
下一篇文章介绍从其他三维设计软件导出飞机模型(如图5)的三角面顶点数据文件,通过第三方库函数导入VPython的方法和代码。
图5
VPython三维仿真(NO.2) 图像操作与基础模型相关推荐
- VPython三维仿真(NO.3) 导入复杂模型
三维仿真对模型要求 科研.教学.工程的三维视景仿真往往使用实际产品.实际物体或建筑.管道.机械装置.车辆等复杂的三维模型展示模拟的物理运动和动力学过程.因此VPython内置的基础模型难以满足三维仿真 ...
- VPython三维仿真(NO.5) 移动模型和调整姿态
模型运动 三维模型的运动涉及六个自由度,分别是模型质心沿笛卡尔直角坐标系三个轴x.y.z的线位移和绕三个轴的角位移.模型运动就是以上六个位移的复合运动,三维仿真的核心就是弄清楚如何在场景中设置模型这六 ...
- VPython三维仿真(NO.4) 创建坐标系
目录 目的 画坐标系方法 画坐标系代码 坐标系效果图 纠正飞机坐标系 源代码 目的 在后续的章节中,飞机或其他模型需要参照物才能明白模型是如何运动的,本节介绍建立笛卡尔坐标系的方法. 画坐标系方法 使 ...
- VPython三维仿真(NO.1) VPython安装与开发环境
VPython简介 VPython是Python的实时交互三维绘图模块,可对绘制的三维图像进行移动.缩放等操作.VPython函数功能强大,具有简单易学的优点.因Python语言简洁代码少,各种数学模 ...
- VPython三维仿真(NO.9)贴图
在Vpython中贴图对象为Texture,帮助文档如下: https://www.glowscript.org/docs/VPythonDocs/textures.html box贴图 r=box( ...
- VPython三维仿真(NO.7)label显示信息
本文介绍VPython在屏幕显示状态提示信息和跟随模型显示信息的方法. label对象 实现信息显示使用label对象,详细内容如下链接: https://www.glowscript.org/doc ...
- 计算机视觉__基本图像操作(显示、读取、保存)
计算机视觉__基本图像操作(显示.读取.保存) 本文目录: ✨ 一.前言 ✨ 二.图像显示(使用OpenCV和Matplotlib显示图像) (1).使用OpenCV显示图像 (2).使用Matplo ...
- FAST选址与三维仿真模拟研究
1993年国际无线电联大会上, 包括中国在内的10国天文学家提出共同建造接收面积为一平方公里的阵国际大射电望远镜(Square Kilometer Array,简称SKA)计划.从1994年开始,以国 ...
- 计算机科学与技术3d仿真设计,三维仿真
三维仿真是指利用计算机技术生成的一个逼真的,具有视.听.触.味等多种感知的虚拟环境,用户可以通过其自然技能使用各种传感设备同虚拟环境中的实体相互作用的一种技术. 中文名 三维仿真 利 用 计算机 ...
最新文章
- CUDA Samples: Calculate Histogram(atomicAdd)
- Cocos2d-x lua 编译到Android设备
- 链表问题20——按照左右半区的方式重新组合单链表
- 为什么 if else 不是好代码?
- html中调用flex中的函数
- 6-3 求链表的倒数第m个元素
- Spring4.2.6+SpringMVC4.2.6+MyBatis3.4.0 整合
- linux开启多少到多少端口命令,Linux端口命令
- JAVA视频系列,学习JAVA常遇到的问题,连载【方法篇】。
- append从一个添加到另一_小米的另一妙用,制作小米锅巴,吃着嘎嘣脆,一口一个香得很...
- android studio查看jar包源码,Android Studio查看源代码报错
- 思科警告:这个 IOS XR 0day 已遭利用,目前尚无补丁
- kubernetes如何进入指定的容器
- Atitit 常见dj机功能 目录 1.1. PLAY/PAUSE:播放及暂停,这个和普通的音乐播放设备的功能都是一样的。	1 1.2. Direction:FWD正方向转动、REV反方向转动,音乐
- Context 使用不当造成内存泄露
- javascript 小白学习指南专题 this
- 图解TCP/IP(第5版)
- android逻辑分辨率,移动端web页面知识小结之手机分辨率与手机像素
- 彻底弄懂 Nginx location 匹配
- python识图训练_使用tensorflow训练模式识别图片中的对象(object-detection)
热门文章
- EOFError: Compressed file ended before the end-of-stream marker was reached
- Webmin安装过程及问题解决
- java 通过 itext生成pdf添加,插入文字,图片
- 为什么磁盘分区的时候,第一个分区前面总有一段空间(63或者2048个扇区)
- C语言内存空间示意图
- 计算机科学 高中研究项目,2013全国第28届青少年科技创新大赛高中《计算机科学》作品《项目简介》...
- seL4之hello-2旅途(完成更新)
- 一份完整的APP产品运营推广方案
- Python文件读写 w+ 与 r+ 到底如何操作
- Codis学习笔记--Java连接codis