サイトトップ

Director Flash 書籍 業務内容 プロフィール

Adobe Flash非公式テクニカルノート

Graphics.drawTriangles()メソッド

ID: FN0903001 Product: Flash Platform: All Version: CS4 and above/ActionScript 3.0

シンタックス
public function drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void引数
vertices:Vector.<Number> ― 数値のVector。ふたつの値の組は位置座標(xy座標)として扱われます。引数vertices(頂点座標)は必須です。

indices:Vector.<int>(デフォルトはnull) ― 整数またはインデックス番号のVector。インデックス3つごとにひとつの三角形を定義します。引数indicesnullのときは、頂点座標3つ(verticesのVector内の6つのxとyの座標値)ごとに三角形が定義されます。nullでなければ、indicesの各インデックス値は頂点座標、つまりverticesのVector内のふたつずつの値からなる座標を順に参照します。たとえば、indices[1]は座標(vertices[2], vertices[3])を参照します。引数indicesはオプションです。しかし、indicesの指定は一般に、渡されるデータ量とデータの処理負荷を軽減します。

uvtData:Vector.<Number>(デフォルトはnull) ― 正規化された座標のVector。テクスチャマッピングを行うために用いられます。各座標はビットマップ上の点を参照し、その点が塗りに使われます。UVもしくはUVT座標は、各頂点座標ごとに必要とされます。UV座標では、(0, 0)がビットマップの左上隅、(1, 1)がその右下隅となります。

この引数のVectorの長さが引数verticesのVectorと同じとき[*1]、正規化された座標が遠近法の補正なしに用いられます。

この引数のVectorの長さが引数verticesのVectorの1.5倍のときは、座標値3つごとにひとつの頂点と対応し[*2]、3つ目の座標値はt(視点からテクスチャまでの視点空間における距離)として扱われます。このtの値により、レンダリングエンジンは遠近法を正しく適用し、テクスチャを3次元空間にマッピングできます。

引数uvtDatanullであれば、通常の塗りの規則(および塗りのタイプ)が適用されます。

culling:String(デフォルトは"none") ― 一定の向きの三角形の面について描画するかどうかを指定します。この引数は、三角形が現在の視野から見えないときに、描画を省きます。この引数には、TriangleCullingクラスに定義された値が設定できます。

戻り値
なし。

説明[*3]
組合わせた三角形に対して描画を行います。ビットマップを変形させて、3次元を表現するために用いられることが多いです。drawTriangles()メソッドは、現在の塗りまたはビットマップの塗りを、(u, v)座標群を用いて三角形の各面にマッピングします。

塗りはどのようなタイプでも使えます。ただし、塗りに変換行列が適用されていても、その行列は無視されます。

引数uvtDataを指定すると、ビットマップの塗りを用いたとき、より精密なテクスチャマッピングが行えます。

[訳者注*1] [ヘルプ]は、「このベクターの長さがverticesベクターの2倍である場合」(英語原文は"If the length of this vector is twice the length of the vertices vector")としています。しかし、各頂点に対して(u, v)座標が指定された場合であり、頂点を(x, y)座標で定める引数verticesVector.lengthプロパティとは値が等しくなります。

[訳者注*2] [ヘルプ]は、「このベクターの長さがverticesベクターの3倍である場合」(英語原文は"If the length of this vector is three times the length of the vertices vector")としています。これも前述[訳者注*1]と同じように、各頂点に対して(u, v, t)の3座標値が指定された場合と解すべきです。また、ひとつの頂点に3つの座標値が対応する旨を補足しました。

[訳者注*3] スクリプトの例については、Adobeデベロッパーセンター「三角形分割によるテクスチャマッピング − Graphics.drawTriangles()メソッド Part 1」をご参照ください。

Player
ActionScript 3.0/Flash Player 10/AIR 1.5以降。

出典
[ActionScript 3.0 Language and Components Reference] > [Graphics] > [drawTriangles() method]

参考
[ActionScript 3.0 言語およびコンポーネントリファレンス] > [Graphics] > [drawTriangles()メソッド]


作成者: 野中文雄
作成日: 2009年3月31日


Copyright © 2001-2009 Fumio Nonaka.  All rights reserved.