立体像素画:Obelisk.js绘制等轴透视立体图形(Isometric Graphics) 作者:Alex Young
2014-03-28 14:41
309 查看
译者注:IsometricGraphics, 游戏绘图中的常用术语,可直观理解为透视立体图形,就像你在《帝国时代》或者《暗黑破坏神》这些游戏里看到那样。关于这里面的背景知识:这篇博文很有帮助/content/3812658.html
原文链接:http://dailyjs.com/2014/03/24/obelisk/
![](http://img.blog.csdn.net/20140328142012093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTU4MTAwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(图片说明:Obelisk.js现有的全套5种原型图形(Brick、Cube、SideY、SideX与Pyramid)以及上色后的效果,未来将会有更多的isometric原型图加入到引擎中。)
在创建等轴图形(Isometric Graphics)的时候,由Max Huang创作的Obelisk.js (GitHub: nosir/obelisk.js,License: MIT)是一个非常好用的JS类库。
Obelisk.js引擎提供的API非常简单灵活,你可以很方便的在HTML5画布上添加上类似砖块、立方体和金字塔这样的isometric pixel图形元素。Obelisk.js的线条绘图遵循pixel neat pattern, 也就是说,线条的像素排列严格使用1:2高宽比例,并使线条形成22.6度(arctan(0.5) = 26.565)的角度。
Max用Obelisk.js写了一些非常酷的例子,比如这个从Gif转换成isometric图形的三个小人的动画(链接:http://codepen.io/nosir/details/mdiHe),还有可以将任意输入的文字转换成isometric图形的渲染文本功能,,还有可以将任意输入的文字转换成isometric图形的渲染文本功能(链接:http://codepen.io/nosir/details/IxBJn)。
译者注:另外JSFiddle上的这个例子也会很有助于理解(http://jsfiddle.net/nosir/ygWEW/)
![](http://img.blog.csdn.net/20140328143617265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTU4MTAwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(图片说明:Isometric文字效果)
Max还写了一些教程来指导怎样创建立方体和其他的原型图形。下面我们就用Obelisk.js来分步建立一个isometric pixel的立方体,也许你对这些代码还不能立刻想清楚,但是没关系,只需要知道这有多么简单就可以了。
这样在canvas中就可以看到它了:
![](http://img.blog.csdn.net/20140328143851593?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTU4MTAwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
现在我们可以放大浏览器的显示比例,离近了仔细看一看:
原文链接:http://dailyjs.com/2014/03/24/obelisk/
(图片说明:Obelisk.js现有的全套5种原型图形(Brick、Cube、SideY、SideX与Pyramid)以及上色后的效果,未来将会有更多的isometric原型图加入到引擎中。)
在创建等轴图形(Isometric Graphics)的时候,由Max Huang创作的Obelisk.js (GitHub: nosir/obelisk.js,License: MIT)是一个非常好用的JS类库。
Obelisk.js引擎提供的API非常简单灵活,你可以很方便的在HTML5画布上添加上类似砖块、立方体和金字塔这样的isometric pixel图形元素。Obelisk.js的线条绘图遵循pixel neat pattern, 也就是说,线条的像素排列严格使用1:2高宽比例,并使线条形成22.6度(arctan(0.5) = 26.565)的角度。
Max用Obelisk.js写了一些非常酷的例子,比如这个从Gif转换成isometric图形的三个小人的动画(链接:http://codepen.io/nosir/details/mdiHe),还有可以将任意输入的文字转换成isometric图形的渲染文本功能,,还有可以将任意输入的文字转换成isometric图形的渲染文本功能(链接:http://codepen.io/nosir/details/IxBJn)。
译者注:另外JSFiddle上的这个例子也会很有助于理解(http://jsfiddle.net/nosir/ygWEW/)
(图片说明:Isometric文字效果)
Max还写了一些教程来指导怎样创建立方体和其他的原型图形。下面我们就用Obelisk.js来分步建立一个isometric pixel的立方体,也许你对这些代码还不能立刻想清楚,但是没关系,只需要知道这有多么简单就可以了。
// 第一步,我们来创建一个isometric 3D坐标轴的零点instance变量。 var point = new obelisk.Point(200, 200); // 然后在HTML5 Canvas object中创建pixel view的instance变量,在这里摆放所有的图形。 var pixelView = new obelisk.PixelView(canvas, point); // 同时创建立方体的dimension变量和上色用的color instance变量。 var dimension = new obelisk.CubeDimension(80, 100, 120); var gray = obelisk.ColorPattern.GRAY; var color = new obelisk.CubeColor().getByHorizontalColor(gray); //然后把上面建立的三个变量作为参数传递给cube构造器,生成一个cube instance变量。 var cube = new obelisk.Cube(dimension, color, true); // 最后一步,把cube原型渲染出来。 pixelView.renderObject(cube);
这样在canvas中就可以看到它了:
现在我们可以放大浏览器的显示比例,离近了仔细看一看:
相关文章推荐
- 滚动心电图形的绘制(Core Graphics)
- WPF:基于物理像素的图形绘制
- JS绘图Flot应用-关于图形绘制中的两个异常
- 从零开始PyopenGL(2): 简单立体图形绘制
- Android API Guide for Animation and Graphics(五)—— 动画与图形(画布和可绘制对象)
- android绘制图形:android.graphics.drawable.shapes
- 在C#用Graphics绘制图形(雪人)
- 保存自己在Graphics上绘制的图形
- SVG.js 基础图形绘制整理(二)
- qt opengl lesson6 给立体图形绘制纹理
- Three.js的使用及绘制基础3D图形详解
- Swift- Core Graphics绘图框架详解2(绘制图形)
- 开始绘制立体图形立方体正四面体
- SVG.js 基础图形绘制整理(一)
- Java Graphics 图形绘制
- Android之Graphics 简单绘制几何图形
- JS 绘制图形
- js绘制三维立体图表
- JS伪3D 图形透视效果
- 【UWP通用应用开发】编辑文本、绘制图形、3D透视效果及绘制时钟实战