`
ienown
  • 浏览: 7280 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

基础知识04一个自动旋转的四边形[转]

阅读更多
转载 原文为 http://www.pan3d.me/tutorial 作者 Pan3d.Me




在这里,将实现这个四边形在慢慢的转。转一圈为360 ,现在我们设定的是绕着Y轴旋转的角度为 _r

用到以下第一个数组来存最初的4个点。第二组数据存绕Y轴旋转后的位置坐标

private var _pointitem:Array = new Array()
private var _newpointitem:Array=new Array()

因为我们在这里需要时时渲染效果,所以必须清楚掉上次的图片 , clear()

然后旋转角度 _r++  这样就能保证它在转动着。

因为我们在这里只绕着 Y轴旋转,所有的 y 坐标都不会变化,只有 x, z  ;在变化。

a=_r * Math.PI / 180    //在这里是角度转幅度。

rx = (Math.cos(a) * x + Math.sin(a) * z);
rz = (Math.sin(a) *x + Math.cos(a) *z);

在这里是一个很有用的一个公式,简单理解就是,以 (0 ,0)为圆点, 原来的坐标 (x,y) 旋转  a 幅度后得到新的坐标 (rx,rz)

接下来我们逐个的对每一个原始点绕着Y轴旋转后 _r 之后

for (var i in _pointitem) {
_newpointitem[i].x = (Math.cos(_r * Math.PI / 180) * _pointitem[i].x + Math.sin(_r * Math.PI / 180) * _pointitem[i].z);
_newpointitem[i].z = (Math.sin(_r * Math.PI / 180) * _pointitem[i].x + Math.cos(_r * Math.PI / 180) * _pointitem[i].z);
var _obj = transform3d_to_2d(_newpointitem[i])
_triangles.vertices[i * 2 + 0] = _obj.x;
_triangles.vertices[i * 2 + 1] = _obj.y;
}

我们将转后的点都存到 _newpointiem 这里来, 然后我们再将第个点的位置 映射到 镜头上来 (上一篇里面有讲的)

  • 大小: 36 KB
  • 7.rar (144.7 KB)
  • 下载次数: 1
分享到:
评论

相关推荐

    机械设计之旋转灌装机

    总的来说,旋转型灌装机的运动方案设计是一次综合性的机械工程实践,涉及到机械原理、动力学分析、机械部件设计等多个领域的知识,要求学生不仅要有扎实的理论基础,还要具备解决实际问题的能力。通过这样的设计,...

    VC控制三维立方体的旋转

    同时,为了实现手动和自动旋转的切换,可能需要一个标志变量来控制旋转行为。 此外,还需要考虑光照和材质效果,以使立方体看起来更加立体。OpenGL提供了光源和材质属性的设置,如glLightfv()和glMaterialfv()函数...

    旋转式立体车库设计[文].pdf

    总的来说,9车位景观式立体旋转车库的设计融合了机械结构、动力传动、自动控制等多个领域的知识,旨在创造一个安全、高效且节省空间的停车解决方案。通过精心设计的载车板、驱动环、行星减速器和控制系统,车库能够...

    平行四边形性质优质学习教案.pptx

    4. **中心对称性**:平行四边形是中心对称图形,意味着如果存在一个点(如文件中的O点),将平行四边形绕该点旋转180°后,图形能够与其自身完全重合。这个特性在设计和建筑领域有广泛应用,如工厂大门、护栏和自动...

    基于FMC的opengl画旋转平移着色 矩形体

    在OpenGL中,绘制矩形通常需要定义四个顶点,形成一个二维的四边形,然后使用`glBegin()`和`glEnd()`之间的函数调用来指定顶点。例如,可以使用`glVertex3f()`来定义每个顶点的坐标。在本例中,矩形体可能还需要进行...

    机器人教育类搭建原理图,高清PDF版

    3. **皮带传动**:皮带传动利用摩擦力将动力从一个旋转轴传递到另一个旋转轴,常用于较长距离的动力传输。在积木搭建中,它可以用于构建复杂的动力传递系统,如风扇或传送带。 4. **涡轮蜗杆**:涡轮蜗杆传动是一种...

    SolidWorks2012中文版从入门到精通——第2章:草图绘制基础.pdf

    本资源是SOLIDWORKS 2012中文版的教程,主要介绍了草图绘制的基础知识,包括草图绘制的基本知识、草图编辑工具、尺寸标注等。下面是本资源的详细信息: 一、草图绘制的基本知识 草图绘制是SOLIDWORKS软件的基础,...

    新西师大版六年级上册数学 第1课时 圆的面积计算公式 教学课件.pptx

    这个公式是由将一个圆分割成若干等份,然后拼接成一个近似的平行四边形得到的。平行四边形的面积可以通过长乘以宽来计算,即 $S_{\text{平行四边形}} = \text{长} \times \text{宽}$。在圆的情况下,"长"相当于圆的...

    SolidWorks理论试题一.doc

    - **基础知识**(A):拔模特征属于基础特征建模技术的一种,通常用于模具设计中,以确保零件能够顺利脱模。 #### 五、插入菜单项包含的功能 - **知识点解析**: - **草图绘制工具**(A):SolidWorks的“插入”...

    小学数学圆的面积PPT课件.pptx

    例如,通过计算自动旋转喷水器的喷灌面积,学生不仅能够应用圆面积公式解决实际问题,还能够加深对公式中每一个变量所代表的几何意义的理解。此外,对于不同半径或直径的圆面积的求解,也进一步提升了学生对公式的...

    opengl 实现的机器人行走

    OpenGL是一种强大的图形库,用于在...它要求开发者具备扎实的OpenGL基础知识,良好的C++编程技能,以及对机器人运动学的理解。通过这样的项目,不仅可以学习到高级的图形编程技巧,还能锻炼解决问题和创新设计的能力。

    四川省乐山市中考试卷精选.doc

    试卷内容涉及数学的基础知识,包括倒数、统计图表分析、角度计算、数轴上的点平移、几何图形(菱形、直角三角形、正方形)的性质、不等式的解集、图形的拼接、比例和代数式的求解等。 1. 倒数的概念:问题1问到12的...

    SolidWorks2019中文版从入门到精通——第2章:草图绘制基础11页.pdf

    在SolidWorks2019中文版的学习之旅中,草图绘制无疑是一个重要的起点。掌握好草图绘制的基本知识,能够为之后的三维实体建模打下坚实的基础。本章节将深入浅出地介绍SolidWorks2019中文版中草图绘制的基本知识、草图...

    相似图形生成器.doc

    在数学教育中,相似图形是一个重要的概念,它涉及到比例、几何变换等基础知识。为了更好地理解和掌握这一概念,教师们常常利用相似图形生成器作为辅助教学工具。下面我们将详细探讨相似图形生成器的制作方法以及其在...

    九年级数学上册232中心对称新人教版PPT学习教案.pptx

    教案可能包含不同类型的中心对称图形分析,如正多边形、平行四边形等,以及如何确定一个图形是否中心对称的方法。例如,如果一个图形内任意两点的对称点总是关于同一中心对称,那么这个图形就是中心对称的。在这一...

    焊接技术及自动化《工程力学》山东-大学网络教育考试模拟题及答案—-毕业论文设计.doc

    在焊接技术及自动化领域,工程力学的知识是不可或缺的基础,因为它帮助工程师理解和预测在焊接过程中材料的行为。 1. **约束反力**: 在工程力学中,约束反力是指由于约束条件产生的作用力。例如,柔索(如绳索或...

    基于Tao框架的C#+OpenGL

    接着,我们选择了红色作为填充颜色,并用`GL_QUADS`开始绘制一个四边形(即矩形)。每个`glVertex2f()`函数定义了一个顶点,按照顺时针或逆时针顺序排列,OpenGL会自动填充内部。 在实际应用中,你可能还需要处理...

    CAD三维操作基本.doc

    2. **三维面(3DFace)**:3DFace命令用于创建平面,需要四个顶点来确定,且这四个顶点必须共面。这些平面在屏幕上只显示其轮廓。如果用户希望继续创建其他平面,可以利用自动记忆的顶点,否则可以通过选择“退出”...

    hypermesh初级培训教程

    《超弦模拟软件Hypermesh基础操作指南》 ...无论你是CAE新手还是希望巩固基础知识的工程师,都能从这个教程中获益。通过实践,你会发现Hypermesh不仅是一款强大的工具,更是解决工程问题的得力助手。

    基于linux开发的俄罗斯方块小游戏.rar

    《基于Linux开发的俄罗斯方块小游戏》是一款利用C语言在Linux环境下实现的经典游戏。这款小游戏不仅展示了编程技术在游戏开发中的应用,同时也体现了Linux系统强大的软件开发能力。下面将详细介绍这款小游戏的技术...

Global site tag (gtag.js) - Google Analytics