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

基础知识03-drawTriangles三维到二维投影[转]

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



核心提示, 在这里,我们不单只是把三角形画出来了,而是跟据真实的空间中的4个点(一个矩形面) 投影成像在镜头上来了,

这样一来,我们就可以通过这种方法将任何三维对象(如,建筑,人) 中的三角形逐个绘制出来。

程序提示。 (下载并打开源文件)

_br=200 是指焦距

存储三维的点坐标, (为了更好直观 需要自己修改其中的一些数据,观察图像变化)

_pointitem.push(new Vector3D( -100, 50, -50) );
_pointitem.push(new Vector3D( -100, -50, -50) );
_pointitem.push(new Vector3D( 100, -50, 50) );
_pointitem.push(new Vector3D( 100, 50, 50) );

因为是三维的数据我们需要转成为二维的,(3D的数据有x,y,z, 2D只有 x,y);

private function transform3d_to_2d(_point:Vector3D) {      //传入一个三维坐标,通过映射公司可以得到 二维坐标,
return {x:_point.x / (_point.z+_br) * _br ,y:-_point.y / (_point.z+_br) * _br}
}

二维坐标Y 为什么要将 三维的 Y坐标 加一个负数呢, 上章有说过,FLASH 舞台跟我们数学中的坐标 Y是相反的,

  • 大小: 69.6 KB
  • 6.rar (143.6 KB)
  • 下载次数: 0
分享到:
评论

相关推荐

    flash3d教学之基础知识02-drawTriangles绘制两个三角形[转]

    在本节“flash3D教学之基础知识02-drawTriangles绘制两个三角形”中,我们将深入探讨Adobe Flash中的3D图形渲染技术,特别是如何使用`drawTriangles`方法来创建基本的3D形状,如三角形。这篇教程适用于对Flash编程有...

    draw-triangles-2d:使用 Canvas2D 上下文绘制简单复形

    var drawTriangles = require ( 'draw-triangles-2d' ) var path = [ [ 25 , 25 ] , [ 40 , 30 ] , [ 50 , 75 ] , [ 125 , 15 ] ] //get a thick polyline var mesh = require ( 'extrude-polyline' ) ( { ...

    focalLength

    【focalLength】在3D图形渲染中是一个关键的概念,特别是在Java3D这样的高级三维图形库中。focalLength通常指的是镜头焦距,它决定了摄像机或虚拟相机捕捉到的图像的视角和深度感知。在Java3D中,focalLength用于...

    as3-blog-source-code:我(已不复存在的)FlashActionScript 博客上帖子的源代码

    BitmapData 基础知识:如何使用 BitmapData 类。 使用 Drawtriangles绘制 3D 形状:使用 graphics.drawTriangles 渲染 3D 形状。 将图像保存为高清:将位图对象转换为 JPEG 或 PNG 并保存。 创建音频可视化器:从...

    Molehill API分析

    #### 二、Stage3D API Stage3D API 是 Molehill API 的核心部分,它为开发者提供了一种全新的方式来访问和控制 GPU 的功能。通过 Stage3D,开发者可以直接管理渲染上下文、顶点缓冲区、索引缓冲区等底层资源,从而...

    flash as3.0代码优化

    以下是从给定文件的标题、描述、标签和部分内容中提炼出的关键知识点: ### 1. DisplayObject 的合理运用 在AS3.0中,`Shape`, `Sprite`, 和 `MovieClip` 是三种不同的DisplayObject容器,它们各有特点,合理选择...

    Adobe Flash 11 Stage3D游戏开发指南-源代码

    通过研究这些代码,开发者可以了解到实际项目中的最佳实践,学习如何将理论知识应用到实践中。 总的来说,Adobe Flash 11 Stage3D的引入极大地扩展了Flash作为游戏开发平台的能力。这份源代码指南是学习和掌握Stage...

    as3 molehill实例

    5. 渲染循环:在每帧更新时,清除屏幕,设置渲染状态,如投影矩阵、视口大小等,然后使用`drawTriangles()`方法绘制3D几何形状。 6. 更新3D旋转:根据用户的输入或时间改变,更新模型的旋转角度,重新计算顶点坐标...

    flash10 3d 引擎

    在之前版本中,虽然可以通过一些技巧实现2.5D效果,但真正的三维渲染一直是个短板。Flash 10引入的3D API,使得开发者能够利用ActionScript 3(AS3)编程语言创建出具有深度、旋转和透视效果的3D场景,为游戏、模拟...

    Flash优化技巧整理

    - **新的绘图API**: 这些API提供了一种更高效的方式来绘制复杂的图形,尤其是当涉及到大量顶点或形状时。 **5、处理像素的新方法: setVector(), getVector()** - **setVector() 和 getVector()**: 这两个方法使得...

    Flash 游戏优化技巧- (adobe平台技术经理-黄竣制作)

    3. **新的绘图API**: 新版本的Flash Player提供了更为高效的绘图API,包括`drawPath()`、`drawGraphicsData()`和`drawTriangles()`等方法。这些方法虽然不会直接改善显示性能,但是可以大幅度减少代码量,从而提高...

    基于as3 stage3d 的基础2d渲染 练手的时候写的,跟opengl原理很像

    《基于AS3 Stage3D的基础2D渲染:深入理解GPU编程》 在计算机图形学的世界里,OpenGL和Stage3D都是实现硬件加速图形渲染的重要工具。这篇内容将深入探讨基于ActionScript 3(AS3)的Stage3D技术,这是一种在Flash...

    stage3d参考

    三、Stage3D编程基础 在Pure AS3环境下,开发者需要掌握以下基本步骤来使用Stage3D: 1. **获取Context3D**:首先,需要在`enterFrame`事件处理函数中获取`stage3D`对象,然后创建`Context3D`实例。 2. **配置...

Global site tag (gtag.js) - Google Analytics