(57)【要約】  本特許は、表示点の組をコンパイルする方法及び装置を開示する。表示点の組は３次元描画アルゴリズムを使用する直線グラフィックオブジェクトの２次元表現を定義する。ある実施の形態においては、３次元（３Ｄ）グラフィックアクセレータはデータを受信する。このデータは三角形要素の３つの頂点（ｘ０，ｙ０，ｋ０），（ｘ１，ｙ１，ｋ１）及び（ｘ２，ｙ２，ｋ２）を定義する。属性Ｋ２＝（Ｋ０＋Ｋ１）／２及び座標（ｘ０，ｙ０，ｋ０），（ｘ１，ｙ１，ｋ１）及び（ｘ２，ｙ２，ｋ２）は二等辺三角形要素を形成する。座標（ｘ０，ｙ０），（ｘ１，ｙ１）は二等辺三角形要素のベースを定義する。二等辺三角形要素は、三次元描画アルゴリズムを使用して描画され、二等辺三角形要素のベースの２次元表現を定義する表示点の組を得る。【選択図】      図１
2008524756.tif 000002
【特許請求の範囲】
【請求項１】
３次元描画アルゴリズムを使用し、直線グラフィックオブジェクトの２次元表現を定義する表示点の組をコンパイルする方法を有するコンピュータ読み取り可能な媒体であって、前記方法は、
三角形要素の３つの頂点(x0, y0, K0), (x1, y1, K1)及び(x2, y2, K2)を定義するデータを受信し、ここで、属性K2=(K0+K1)/2であり、座標(x0, y0), (x1, y1)及び(x2, y2)は二等辺三角形要素を形成し、座標(x0, y0), (x1, y1)は二等辺三角形要素のベースを定義するものであり、
３次元描画アルゴリズムを使用して二等辺三角形要素を描画し、前記二等辺三角形要素のベースの二次元表現を定義する表示点の組を得るコンピュータ読み取り可能な媒体。
【請求項２】
直線を定義するデータを受信し、ここで、前記データは座標(x0, y0)及び属性Ｋ０を有する始点、及び座標(x1, y1)及び属性Ｋ１を有する終点を含み、
座標(x2, y2)を有する第３の点の属性Ｋ２を選択し、ここで、K2 = (K0 + K1)/2であり、
第３の点についての座標(x2, y2)を選択し、二等辺三角形要素を形成することをさらに具備する請求項１記載のコンピュータ読み取り可能な媒体。
【請求項３】
y0 ≠ y1でない場合に、第３の点についての座標(x2, y2)を選択することは、前記ベースの垂直二等分線の式を得ることを含む請求項２記載のコンピュータ読み取り可能な媒体。
【請求項４】
x0 = x1の場合に、x2及びy2がx2 = x0 + 2/(y1-y0) 及び y2 = (y1+y0)/2として定義される請求項１記載のコンピュータ読み取り可能な媒体。
【請求項５】
y0 = y1の場合に、x2及びy2がy2 = y0 + 2/(x1-x0) 及び x2 = (x1+x0)/2として定義される請求項１記載のコンピュータ読み取り可能な媒体。
【請求項６】
前記二等辺三角形要素はエリアを定義し、y0 ≠ y1 及び x0 < x1である場合に、x2及びy2がy2 ≧ y0 及び x2 ≧ x0として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y0及び x2 = x0として定義される請求項１記載のコンピュータ読み取り可能な媒体。
【請求項７】
前記二等辺三角形要素はエリアを定義し、y0 ≠ y1 及び x0 > x1である場合に、x2 及び y2 がy2 > (y1+y0)/2 及び x2 > (x1+x0)/2 として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y1及び x2 = x0として定義される請求項１記載のコンピュータ読み取り可能な媒体。
【請求項８】
二等辺三角形要素を描画することは、
始点(x0, y0)を含むピクセルを位置し、
水平増加値f=0及び垂直増加値g=1を設定し、
(x0+f, y0+g) = (x1, y1)であるかを決定する請求項１記載のコンピュータ読み取り可能な媒体。
【請求項９】
(x0+f, y0+g) ≠ (x1, y1)である場合に、前記二等辺三角形要素を描画することは、さらに、E0=0である場合にピクセルを描画し、E0=0である場合に前記ピクセルのすぐ左に位置するピクセルを描画し、E0=0である場合に前記ピクセルのすぐ右に位置するピクセルを描画することをさらに具備する請求項８記載のコンピュータ読み取り可能な媒体。
【請求項１０】
前記二等辺三角形要素を描画することは、さらに、E0=0である場合にピクセルを描画するか否かを決定し、E0=0である場合に前記ピクセルのすぐ左に位置するピクセルを描画するか否かを決定し、E0=0である場合に前記ピクセルのすぐ右に位置するピクセルを描画するか否かを決定することをさらに具備する請求項９記載のコンピュータ読み取り可能な媒体。
【請求項１１】
３次元描画アルゴリズムを使用し、直線グラフィックオブジェクトの２次元表現を定義する表示点の組をコンパイルする装置において、
三角形要素の３つの頂点(x0, y0, K0), (x1, y1, K1)及び(x2, y2, K2)を定義するデータを受信する図面メモリを有する３次元グラフィックアクセレータと、ここで、属性K2=(K0+K1)/2であり、座標(x0, y0), (x1, y1)及び(x2, y2)は二等辺三角形要素を形成し、座標(x0, y0), (x1, y1)は二等辺三角形要素のベースを定義するものであり、
前記グラフィックアクセレータは、さらに、３次元描画アルゴリズムを使用して二等辺三角形要素を描画し、前記二等辺三角形要素のベースの二次元表現を定義する表示点の組を得る図面プロセッサを有する装置。
【請求項１２】
直線を定義するデータを受信し、ここで、前記データは座標(x0, y0)及び属性Ｋ０を有する始点、及び座標(x1, y1)及び属性Ｋ１を有する終点を含み、座標(x2, y2)を有する第３の点の属性Ｋ２を選択し、ここで、K2 = (K0 + K1)/2であり、第３の点についての座標(x2, y2)を選択し、二等辺三角形要素を形成するシステムプロセッサをさらに具備する請求項１１記載の装置。
【請求項１３】
直線グラフィックオブジェクトとしてのベースを表示する表示装置をさらに具備する請求項１２記載の装置。
【請求項１４】
x0 = x1の場合に、x2及びy2がx2 = x0 + 2/(y1-y0) 及び y2 = (y1+y0)/2として定義される請求項１１記載の装置。
【請求項１５】
y0 = y1の場合に、x2及びy2がy2 = y0 + 2/(x1-x0) 及び x2 = (x1+x0)/2として定義される請求項１１記載の装置。
【請求項１６】
前記二等辺三角形要素はエリアを定義し、y0 ≠ y1 及び x0 < x1である場合に、x2及びy2がy2 ≧ y0 及び x2 ≧ x0として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y0及び x2 = x0として定義される請求項１１記載の装置。
【請求項１７】
前記二等辺三角形要素はエリアを定義し、y0 ≠ y1 及び x0 > x1である場合に、x2 及び y2 がy2 > (y1+y0)/2 及び x2 > (x1+x0)/2 として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y1及び x2 = x0として定義される請求項１１記載の装置。
【請求項１８】
３次元描画アルゴリズムを使用し、直線グラフィックオブジェクトの２次元表現を定義する表示点の組をコンパイルする装置において、
三角形要素の３つの頂点(x0, y0, K0), (x1, y1, K1)及び(x2, y2, K2)を定義するデータを受信する手段と、ここで、属性K2=(K0+K1)/2であり、座標(x0, y0), (x1, y1)及び(x2, y2)は二等辺三角形要素を形成し、座標(x0, y0), (x1, y1)は二等辺三角形要素のベースを定義するものであり、
３次元描画アルゴリズムを使用して二等辺三角形要素を描画し、前記二等辺三角形要素のベースの二次元表現を定義する表示点の組を得る手段とを有する装置。
【請求項１９】
直線を定義するデータを受信し、ここで、前記データは座標(x0, y0)及び属性Ｋ０を有する始点、及び座標(x1, y1)及び属性Ｋ１を有する終点を含み、座標(x2, y2)を有する第３の点の属性Ｋ２を選択し、ここで、K2 = (K0 + K1)/2であり、第３の点についての座標(x2, y2)を選択し、二等辺三角形要素を形成するシステムプロセッサをさらに具備する請求項１８記載の装置。
【請求項２０】
前記受信手段は図面メモリである請求項１８記載の装置。
【請求項２１】
前記描画手段は図面プロセッサである請求項１８記載の装置。
【請求項２２】
(i)   x0 = x1の場合に、x2及びy2がx2 = x0 + 2/(y1-y0) 及び y2 = (y1+y0)/2として定義され、
(ii)   y0 = y1の場合に、x2及びy2がy2 = y0 + 2/(x1-x0) 及び x2 = (x1+x0)/2として定義され、
（iii)   y0 ≠ y1 及び x0 < x1である場合に、前記二等辺三角形要素はエリアを定義し、x2及びy2がy2 ≧ y0 及び x2 ≧ x0として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y0及び x2 = x0として定義され、
(iv)   y0 ≠ y1 及び x0 > x1である場合に、前記二等辺三角形要素はエリアを定義し、x2 及び y2 がy2 > (y1+y0)/2 及び x2 > (x1+x0)/2 として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y1及び x2 = x0として定義される請求項１１記載の装置。
【請求項２３】
３次元描画アルゴリズムを使用し、直線グラフィックオブジェクトの２次元表現を定義する表示点の組をコンパイルする方法であって、前記方法は、
三角形要素の３つの頂点(x0, y0, K0), (x1, y1, K1)及び(x2, y2, K2)を定義するデータを受信し、ここで、属性K2=(K0+K1)/2であり、座標(x0, y0), (x1, y1)及び(x2, y2)は二等辺三角形要素を形成し、座標(x0, y0), (x1, y1)は二等辺三角形要素のベースを定義するものであり、
３次元描画アルゴリズムを使用して二等辺三角形要素を描画し、前記二等辺三角形要素のベースの二次元表現を定義する表示点の組を得る方法。
【請求項２４】
直線を定義するデータを受信し、ここで、前記データは座標(x0, y0)及び属性Ｋ０を有する始点、及び座標(x1, y1)及び属性Ｋ１を有する終点を含み、
座標(x2, y2)を有する第３の点の属性Ｋ２を選択し、ここで、K2 = (K0 + K1)/2であり、
第３の点についての座標(x2, y2)を選択し、二等辺三角形要素を形成することをさらに具備し、
y0 ≠ y1でない場合に、第３の点についての座標(x2, y2)を選択することは、前記ベースの垂直二等分線の式を得ることを含む請求項１記載の方法。
【請求項２５】
x0 = x1の場合に、x2及びy2がx2 = x0 + 2/(y1-y0) 及び y2 = (y1+y0)/2として定義される請求項２３記載の方法。
【請求項２６】
(i)   x0 = x1の場合に、x2及びy2がx2 = x0 + 2/(y1-y0) 及び y2 = (y1+y0)/2として定義され、
(ii)   y0 = y1の場合に、x2及びy2がy2 = y0 + 2/(x1-x0) 及び x2 = (x1+x0)/2として定義され、
（iii)   y0 ≠ y1 及び x0 < x1である場合に、前記二等辺三角形要素はエリアを定義し、x2及びy2がy2 ≧ y0 及び x2 ≧ x0として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y0及び x2 = x0として定義され、
(iv)   y0 ≠ y1 及び x0 > x1である場合に、前記二等辺三角形要素はエリアを定義し、x2 及び y2 がy2 > (y1+y0)/2 及び x2 > (x1+x0)/2 として定義され、前記エリアのうちの１つ、x2及びy2は、前記エリアのうちの１つ=1、y2 = y1及び x2 = x0として定義される請求項１記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本分野は、コンピュータグラフィック処理を一般的に含み、より具体的には、表示点の組が３次元描画アルゴリズムを使用する直線グラフィックオブジェクトの２次元表現を定義する場合の主題を含む。
【背景技術】
【０００２】
今日、アニメーションの生成からワードプロセッシング、e-mailのような単純なタスクまで、コンピューティングの各観点は多くのグラフィックスを使用し、ユーザにとってより直感的な仕事環境を生成している。ビデオアダプタはグラフィックカードであり、パーソナルコンピュータに差し込まれ、コンピュータに表示グラフィカルイメージに対する機能を与える。その所有するグラフィックプロセッサを含むビデオアダプタは、しばしばグラフィックアクセレータと呼ばれる。
【０００３】
自身のメモリ及びプロセッサを有するので、グラフィックアクセレータはコンピュータに表示画面上に複雑な画像を早く表示させることができる。グラフィックアクセレータは、コンピュータに使用されている汎用目的中央処理ユニット（ＣＰＵ）よりも良い結果を得ることができる。グラフィックアクセレータのプロセッサはグラフィック変換の計算に特化されているからである。加えて、グラフィックアクセレータは、グラフィックアクセレータがグラフィック計算をハンドリングしている間に他のコマンドを実行するコンピュータのＣＰＵから解放されている。
【０００４】
初期のコンピュータにおいては、グラフィックは、２次元（２−Ｄ）イメージ、すなわち、２次元（２−Ｄ）グラフィックアクセレータのみによって必要とされる点、線及び正方形で構成されていた。深さ及び他の属性を見せる必要性が３次元（３−Ｄ）グラフィックアクセレータの開発を駆り立てる。表示画面に取り付けられる装置は、一般的に、２−Ｄグラフィックアクセレータ及び３−Ｄグラフィックアクセレータを有し、システムは、必要に応じて２つの間を切り替える。しかしながら、現在マーケットにおいて売られている売れ筋の装置は、コスト節約の観点から２−Ｄグラフィックアクセレータを削除し、３−Ｄグラフィックアクセレータに、以前は２−Ｄグラフィックアクセレータ及び３−Ｄグラフィックアクセレータの組み合わせで行なっていた線の描画を含む全てのタスクを実行させる。
【０００５】
従来の３−Ｄグラフィックアクセレータによって描画される線は、一般的に、１つの三角形が、そのベースで他に対して間隔を空け、及び隣り合うように位置する２つの同一延長三角形を有し、非常に長く、薄い矩形を形成する。しばしば、三角形クワド（quadrilaterals)線と呼ばれ、このような直線が多く使用される。例えば、ワードプロセッシングプログラムのプルダウンメニュー及びインターネットウェブブラウザプログラムは、一般的に、直線によって囲まれたテキストから構成される。セルフォン画面に表示されるメニューオプションは、直線によって囲まれ、分けられたテキストを含む。角度をなす直線は、多くのグラフィカルアプリケーションを有し、装置表示画面に呈示されたハウス或いは積み上げられた棚のワイヤーフレーム図面に深さを与える。
【０００６】
３−Ｄグラフィックアクセレータを有し直線を描画する装置については、コンピュータ画面上の画面空間において、デジタル的にアナログ線セグメントを示しているときに、三角形クアッド線の使用が問題を生成する。例えば、６つの頂点の合計については、三角形クアッド線を補填する２つの三角形それぞれが３つの頂点を有する。これら６つの頂点は記憶のための複数のメモリ及び６つの全ての頂点を描画するために多くの処理時間を必要とする。デジタル的に表現された三角形クアッド線は深さを有するのに対し、それに対応するアナログ線は深さは必要とされない。加えて、多くの処理時間が三角形クアッド線の一部として描画されることのない画素を描画するのに費やされる。したがって、この分野においては、既存の３−Ｄグラフィックアクセレータを利用する直線セグメントを描画する効率的な技術が必要とされている。
【発明の開示】
【０００７】
ここに開示された実施の形態は、三角形基本要素の描画が、３次元描画アルゴリズムを使用する直線グラフィックオブジェクトの２次元表現を定義する表示点の組を生成するように、特定の三角形基本要素の部分として、直線データを使用することによって、上述のニーズに取り組む。
【０００８】
ある実施の形態においては、３次元（３Ｄ）グラフィックアクセレータはデータを受信可能である。このデータは三角形要素の３つの頂点（ｘ０，ｙ０，ｋ０），（ｘ１，ｙ１，ｋ１）及び（ｘ２，ｙ２，ｋ２）を定義する。属性Ｋ２＝（Ｋ０＋Ｋ１）／２及び座標（ｘ０，ｙ０，ｋ０），（ｘ１，ｙ１，ｋ１）及び（ｘ２，ｙ２，ｋ２）は二等辺三角形要素を形成する。この二等辺三角形要素は、三次元描画アルゴリズムを使用して描画され、二等辺三角形のベースの２次元表現を定義する表示点の組を得る。
【発明を実施するための最良の形態】
【０００９】
図１は、内部においていくつかの実施の形態が実現されたシステム１００である。システム１００は、システムプロセッサ１０２、システムメモリ１０４、キーボード、マウスのような入力装置１０６及び３Ｄグラフィックアクセレータ１０８を有する。それぞれは、バス１１０を通して通信を行なう。
【００１０】
システムプロセッサ１０２はホストコンピュータの中央処理ユニット（ＣＰＵ）であり、ホストコンピュータは、デスクトップ或いはラップトップコンピュータ、サーバ、ゲームコンソール、セルラー電話のようなものである。システムメモリ１０４はメモリリソースの種々のフォームを含み、永久格納装置、大容量格納装置、リムーバブル格納装置及びランダムアクセスメモリ（ＲＡＭ）のような揮発性読み出し及び書き込みメモリのようなものである。システムメモリ１０４とともに、システムプロセッサ１０２はプログラムされた命令を処理し、タスクを実行する。
【００１１】
３Ｄグラフィックアクセレータ１０８は、システム１００にグラフィックイメージをすばやく効率的に表示する能力を与える。例えば、３Ｄグラフィックアクセレータ１０８は、３Ｄグラフィックアクセレータ１０８がグラフィック計算をハンドリングしている間に、システムプロセッサ１０２を他のコマンドを実行するために解放する。図面メモリ１１２、図面プロセッサ１１４及びフレームバッファ１１６は３Ｄグラフィックアクセレータ１０８に含まれ、表示装置１１８は３Ｄグラフィックアクセレータ１０８に接続されている。
【００１２】
図面メモリ１１２はデータ及びシステムプロセッサからの命令を受信し、図面プロセッサ１１４によって使用されるデータ及び命令を格納する。図面プロセッサ１１２は、加算器、乗算器及びマルチプレクサのようなコンポーネントを含み、図面メモリ１１２内のデータ及び命令を処理する。この処理の間、図面プロセッサ１１４は格納された命令に従ったデータを描画する。ある実施の形態においては、図面メモリ１１２は色、深さ、ステンシルなどの種類のスクラッチパッドのように働く。
【００１３】
セル電話上で使用されているようなコンピュータ画面及び他の表示画面はピクセルのグリッド（アレイ）を選択的に明るくすることにより、イメージを表示する。これらビットマップ或いは描画イメージは、特定の表示装置画面におけるピクセル位置についての強度の組によって完全に特定される。描画処理は、各ビットが特定の強度で表示装置１１８上でピクセルが光るように設計され、ビットマップイメージへの形で構成されるオブジェクト指向イメージを含む。データを描画するために、ビットマップがフレームバッファ１１６に格納されている場合に、図面プロセッサ１１４はビットマップを生成するためにデータをロードし解析する。ビットマップはファイル或いは表示装置１１８上に表示されるべきビット対ビットのイメージ構造である。さらに、フレームバッファ１１６はバス１１０に直接取り付けられている。
【００１４】
図２は、表示装置１１８上の画面空間において直線として描画されるモデル空間直線２００を示す。直線２００は、始点２０２から終点２０４まで伸びる。始点２０２は座標（ｘ０，ｙ０，ｚ０）で示されており、終点２０４は座標（ｘ１，ｙ１，ｚ１）で示されている。本例の直線２００は表示装置１１８上の画面空間に平行な平面にあるので、始点２０２は座標（ｘ０，ｙ０）で示され、終点２０４は座標（ｘ１，ｙ１）で示されている。
【００１５】
図３は、直線２００から三角形要素を構築するための方法３００のフローチャートである。ステップ３０２では、システムプロセッサ１０２は直線を生成し、位置づけることに関する入力を受信する。この入力は、人間であるユーザか行なわれ、このユーザは、航空機の翼のワイヤフレームモデルを描くために計算機援用図面パッケージを使用するような人や、セルラー電話の画面上に現れる封筒の背景画面、コンピュータゲームにおいて現れる１つ以上の線を描く人などである。いずれにしろ、図１の入力装置１０６は、入力をシステムプロセッサ１０２に送るのに使用される。ここで、入力は直線２００を生成し、位置づけることに関する情報を含む。
【００１６】
ステップ３０４では、システムプロセッサ１０２は受信した入力を命令３０４に変換する。この命令は、コマンドを含む。コマンドは、例えば、直線２００の２つの終点のｘ，ｙ座標の次に、draw_lineのようなものである。線の始点は、（ｘ０，ｙ０）におけるゼロ（”０”）と指定され、線の終点は、（ｘ１，ｙ１）における１つ（ｘ１，ｙ１）と指定されることが可能である。三角形は、一般的に左頂点ピクセルから、左から右に移動し、そして、頂点から底辺へ移動することにより描画される。描画処理が提案された三角形内の他のピクセルに到達する前に始点（ｘ０，ｙ０）を含むピクセルに届く場合、処理は直線２００の位置を決定する。
【００１７】
提案された三角形内の第１のピクセルが始点（ｘ０，ｙ０）であることを保証するために、直線２００の始点（ｘ０，ｙ０）は直線２００のその終わりである。この場合において、ｙ０≧ｙ１であり、ｘ０はｘ軸に最も近い座標（ｘ０≦ｘ１）である。言い換えれば、始点は、ｙモデル空間座標の最も小さい値を有する終点であり、２つのｙモデル空間座標は等しい場合、始点はｘモデル空間座標の最小値を有するその終点である。
【００１８】
その位置に加えて、直線２００の各終点は、他の属性によって定義される。この属性は、例えば、拡散色（アルファ（”α”），Ｒ，Ｇ，Ｂ）（例えば、α、赤、緑、青）、鏡色（ＲＳ、ＧＳ，ＢＳ）、テキスチャー色（ｕ，ｖ）及び霧などである。したがって、システムプロセッサ１０２の一般的な命令は、以下のコマンドストリング（１）で示される。
【００１９】
draw_line (x0, y0, K0, x1, y1 K1) (1)
又は
draw_line(x0, y0, n0α, n0R, n0G, n0B, n0RS, n0GS, n0BS, n0u, n0v,x1, y1, n1α, n1R, n1G, n1B, n1RS, n1GS, n1BS, n1u, n1v)  (1)
最後の数字或いはキャラクタは特定の属性を認識する。ｘ，ｙの位置の数値はどんな番号であってもよく、残りの属性についての数値は０から２５５まで（例えば、０から２８まで）であってもよい。数値例として、命令はコマンドストリング（２）として以下のように示される。
【００２０】
draw_line(1.51, 2.21, 8α, 240R, 0G, 56B, 23RS, 0GS, 0BS, 4u, 256v,
3.15, 4.48, 45α, 210R, 0G, 7B, 99RS, 180GS, 45BS, 0u, 16v)  (2)
コマンドストリング（２）から描かれる直線は、始点（ｘ０，ｙ０）＝（１．５１，２．２１）から終点（ｘ１，ｙ１）＝（３．１５，４．４８）までの直線であり、指定された属性の数値を有する。
【００２１】
２Ｄグラフィックスアクセレータは、ベクトルグラフィックを通してコマンドストリング（２）を処理するように設計されている。しかしながら、３Ｄグラフィックアクセレータは、しばしば要素とよばれているごく小さな少ない地理的オブジェクトを処理する。線は要素ではないのに対して、四角形、三角形、ｎ角形は要素の例である。現存の３Ｄグラフィックアクセレータは、コマンドストリング（２）を直接処理するようには設計されていない。
【００２２】
装置が２Ｄグラフィックアクセレータを欠き、３Ｄグラフィックアクセレータを含む場合、装置の画面上で見られる全てのオブジェクトは実際に要素で作られている。要素の境界は、直線セグメントを構成する。要素境界の唯一の線セグメントを描画することは、直線を生成する。したがって、情報はコマンドストリング（２）に含まれ、要素を形成し、次に、３Ｄグラフィックアクセレータは要素を処理し、直線をコマンドストリング（２）の直線にフィットするように直線を引き出す。
【００２３】
種々の要素のレビューの後、三角形要素が３Ｄグラフィックアクセレータ１０８によって直線に処理されるための公的な候補として表われる。各３Ｄオブジェクトは三角形に分割されるが、三角形は三角形以外の何にも分割されない。３Ｄ空間における三角形は、また、２Ｄ空間における三角形である。扱われることは少ないので、三角形の描画は、より高次元のポリゴンの描画によりも、大変簡単である。コンピュータグラフィックスにおいて三角形が共通に使用されるいくつかの理由がある。
【００２４】
三角形は、３辺を有し、したがって、３つの点或いは３つの頂点で構成されている。色の値（あるいはインデックス）或いはテクスチャインデックスのような他の情報は別として、三角形の各頂点は三角形点の座標を含む。３Ｄ空間において定義された三角形を２Ｄ（画面）空間に変換するために、三角形の頂点が３Ｄから２Ｄ空間に投影され、次に、描画される。
【００２５】
３Ｄグラフィックアクセレータが要素のみを処理することができる場合に、第３の点が、３つの点が三角形要素を形成するように、例示である始点（１．５１，２．２１）及び終点（３．１５，４．４８）とともに提供される。ステップ３０６では、システムプロセッサ１０２は、３つの点が三角形要素を形成するように、第３の点を選択することを開始し、ステップ３０４の命令に加える。
【００２６】
三角形内に位置するピクセルを描画する際に、三角形の頂点に与えられた値は、本質的に重み付けされた平均を各描画されたピクセルに与える。例えば、与えられたピクセルでの計算された赤色（及び表示された）は、各３つの頂点からの与えられたピクセルの距離及び各頂点での拡散赤色（Ｒ）の属性値によって影響される。ピクセルが頂点に近づくほど、頂点の赤色属性が大きくなり、そのピクセルに影響を与える。
【００２７】
好ましくは、第３の点の属性値は直線２００に沿ったピクセルの計算された属性値にあまり影響がないように選択される。例えば、第３の点の属性値が直線２００の始点及び終点の属性値の平均となるように選択された場合には、第３の点の属性値は直線２００に沿ったピクセルの計算された属性値にあまり影響がない値をとる。
【００２８】
二等辺三角形は長さの等しい少なくとも２つの脚を持つ三角形である。２つの脚によって形成された頂点は、ベースに向きあう。二等辺三角形の頂点の座標（ｘ２，ｙ２）は、二等辺三角形のベースの始点（ｘ０，ｙ０）及び終点（ｘ１、ｙ１）から等距離である。さらに、この頂点がベースの中点を二等分する線はベースに対して直交する。このような線はベースの中点から始まり、垂直に延び、同時に三角形の外周及びエリアを二等分し、”Ｂ−線”として参照される。
【００２９】
直線２００を二等辺三角形要素に組み込み、頂点（ｘ０，ｙ０）及び頂点（ｘ１，ｙ１）における属性値の平均となる頂点（ｘ２，ｙ２）における属性値における属性値を選択することにより、頂点（ｘ２，ｙ２）における座標及び属性値が直線２００に沿ったピクセルの計算された属性値にあまり影響を与えない。もし、真であれば、コマンドストリング（２）を着目された二等辺三角形に組み込むことにより、コマンドストリング（２）に基づいて、直線が３Ｄグラフィックアクセレータ１０８によって描かれる。この真実は、数学的に次のように示される。
【００３０】
図４は、二等辺三角形４００の平面図を示す。二等辺三角形４００はベース４０２、脚４０４、４０６を含み、脚４０４の長さ”ｂ”は脚４０６の長さ”ｂ”に等しい。二等辺三角形４００は、さらに、頂点４０８、頂点４１０及び頂点４１２を有し、頂点４１２は長さ”ａ”を有するベース４０２に向かってオープンする。中点（ｘｍ，ｙｍ）は、頂点４０８及び頂点４１０の間の長さ”ａ”に沿って正確に半分の位置に存在する。さらに、Ｂ−線４１６は中点４１４から高さ”ｈ”にそって頂点４１２に延びる。図４の例においては、ベース４０２は３Ｄグラフィックアクセレータ１０８によって描画され、表示装置１１８に表示される直線セグメントである。
【００３１】
二等辺三角形４００内に配置された各ピクセルは、属性Ｋを有し、属性α、Ｒ，Ｇ、Ｂ、ＲＳ、ＧＳ、ＢＳ、ｕ及びｖを有する。各頂点４０８、４１０、４１２の属性値の値は、それぞれ、Ｋ０、Ｋ１、Ｋ２によって表わされる。したがって、二等辺三角形４００の内部で、画面空間におけるｘ，ｙ位置のリニア二変数関数Ｋは下記のようになる。
【００３２】
K(x, y) = (Ak)(x) + (Bk)(y) + Ck  (3)
ここで、
Ｋ＝α，Ｒ，Ｇ，Ｂ，ＲＳ、ＧＳ、ＢＳ、ｕ及びｖ
（ｘ、ｙ）は１つの画面ピクセルについての画面空間座標
Ａｋ，Ｂｋ及びＣｋはリニア係数を示している。
【００３３】
所与のｘ，ｙ画面空間座標のリニア係数Ａｋ，Ｂｋ及びＣｋは頂点４０８、４１０、４１２に関連付けられた式によって得られる。描画アルゴリズムを採用し、所与のｘ，ｙ画面空間座標のリニア係数Ａｋ、Ｂｋ及びＣｋを決定することにより、特定のピクセル属性値が式（３）に従った対応するｘ，ｙ画面空間座標で得られる。
【００３４】
リニア係数Ａｋ，Ｂｋ及びＣｋの頂点４０８、４１０、４１２に関連付けられた式は、下記を含む。
【００３５】
Ak = [(A0)(K0) + (A1)(K1) + (A2)(K2)]/Area  (4)
Bk = [(B0)(K0) + (B1)(K1) + (B2)(K2)]/Area  (5)
Ck = [(C0)(K0) + (C1)(K1) + (C2)(K2)]/Area  (6)
ここで、二等辺三角形のエリアは、
エリア = (1/2)(a)(h) = (1/2)(a)[(b^2)-(1/4)(a^2)]^(1/2)  (7)
リニア係数は、以下のように示される。
【００３６】
A0 = y1-y2              A1 = y2-y0              A2 = y0-y1  (8)
B0 = x2-x1              B1 = x0-x2              B2 = x1-x0  (9)
C0 = (x1)(y2)-(x2)(y1)  C1 = (x2)(y0)-(x0)(y2)  C2 = (x0)(y1)-(x1)(y0)  (10)
３次元描画アルゴリズムは、式（３）、（４）、（５）、（６）を含む。上述のように、Ｋ２の属性値（例えば、第３番目の点の属性値）がＫ０及びＫ１の属性値の平均となるように選択された場合、Ｋ２の属性は、ベース４０２に沿ったピクセルの計算された属性値Ｋ（ｘ，ｙ）にあまり影響を与えない。数学的に、このことは以下のように表わされる。
【００３７】
K2 = (K0 + K1)/2  (11)
描画のために選択される三角形は二等辺三角形であるので、式（８）、（９）、（１０）におけるｙ２の値はｙ０及びｙ１の観点から表現される。図４のようにｘ０＝ｘ１となるように、二等辺三角形４００の位置を定めることによって、ｙ２は単純に以下のように表わされる。
【００３８】
y2 = (y0 + y1)/2  (12)  
ここで、
Ak = [(A0)(K0) + (A1)(K1) + (A2)(K2)]/エリア  (4)
式（８）を式（４）に代入して、
Ak = [(y1-y2)(K0) + (y2-y0)(K1) + (y0-y1)(K2)]/エリア  (13)
式（１１）を式（１３）に代入して、
Ak = [(y1-y2)(K0) + (y2-y0)(K1) + (y0-y1)((K0 + K1)/2)]/エリア  (14)
式（１２）を式（１４）に代入して、
Ak = [(y1-(y0 + y1)/2)(K0) + ((y0 + y1)/2-y0)(K1) +
(y0-y1)((K0 + K1)/2)]/エリア (15)
乗除算をすると、
Ak = [(K0)(y1)-.5(K0)(y0)-.5(K0)(y1) + .5(K1)(y0) + .5(K1)(y1) -(K1)(y0) +
.5(K0)(y0)-.5(K0)(y1)+.5(K1)(y0)-.5(K1)(y1)]/エリア  (16)
並べ替えて、
Ak = [-.5(K0)(y0)+.5(K0)(y0) + (K0)(y1)-.5(K0)(y1)-.5(K0)(y1)+
.5(K1)(y0)-(K1)(y0)+.5(K1)(y0)+ .5(K1)(y1)-.5(K1)(y1)]/エリア  (17)
或いは
Ak = [0]/エリア = 0  (18)
上述のように、
K(x, y) = (Ak)(x) + (Bk)(y) + Ck  (3)
式（１８）を式（３）に代入して、
K(x, y) = (0)(x) + (Bk)(y) + Ck  (19)
或いは
K(x, y) = (Bk)(y) + Ck  (20)
二等辺三角形を利用し、Ｋ２をＫ０及びＫ１の平均値に等しくなるように設定することにより、Ａ（ｋ）量は式（３）からドロップアウトし、式（２０）に示すようなｙのみの一変量関数であるＫ（ｘ，ｙ）の値を生成する。これは望まれるべき結果であり、（ｘ０，ｙ０）或いは（ｘ１，ｙ１）から（ｘ２，ｙ２）の距離或いは、Ｋ２の属性値がベース４０２に沿った属性値、描かれるために選択された直線セグメントに影響を与えるものでもない。
【００３９】
上述のように、システムプロセッサ１０２はステップ３０６において第３の点を選択することを始め、３つの点が三角形を形成するようにステップ３０４の命令に加える。
【００４０】
直線２００の開始点（ｘ０，ｙ０）＝（１．５１，２．２１）及び終点（ｘ１，ｙ１）＝（３．１５，４．４８）では、コマンドストリング（２）から、直線２００の中点（ｘｍ，ｙｍ）は
(xm, ym) = ((x1+x0)/2, (y1+y0)/2)  (21)
(xm, ym) = (2.33, 3.35) = ((1.51+3.15)/2, (2.21+4.48)/2)
線方程式の傾斜、始点（１．５１，２．２１）及び終点（３．１５，４．４８）を使用することにより、直線２００の傾斜は、
m = (y1-y0)/(x1-x0)  (22)
1.38= (2.21-4.48)/(1.51-3.15)
直線２００のｙ−交点”ｂ”を求めるために、一般線方程式が使用される。
【００４１】
y = mx + b  or  b = y - mx  (23)
b = 2.21 - 1.38(1.51)
b = 0.12
傾斜ｍ＝１．３８とすると、直線２００の線方程式は、
y = 1.38x + 0.12  (24)
直線２００（ベースの距離）の長さは、
距離 = [(x1-x0)^2+(y1-y0)^2)]^(1/2)  (25)
2.80 = ((1.51-3.15)^2 + (2.21-4.48)^2))^(1/2))
直線２００の中点を通過する垂線の傾斜ｍは、直線２００の傾斜の負の逆であり、ここではｍ＝１．３８である。したがって、直線２００の中点を通過する垂線の傾斜ｍは、−０．７２（＝（１／１．３８））である。直線２００の中点を通過する垂線のｙ−交点は、３．３５（−．０７２）（２．３３）＋ｂ、或いはｂ＝５．０３のように式（２３）から得られる。したがって、第３の点（ｘ２，ｙ２）は下記式の線に沿った点である。
【００４２】
y2 = -0.72(x2) + 5.03  (26)
図５は、直線５００として再度描かれた直線２００の平面図である。直線５００は、始点５０２と終点５０４との間に存在し、中点５０６（ｘｍ，ｙｍ）を含む。線５０８は、中点５０４を通る直線２００の垂直二等分線として位置する。上述のように、第３の点（ｘ２，ｙ２）は式２６：ｙ２＝−０．７２（ｘ２）＋５．０３に従った線に沿った点である。加えて、図１の表示装置１１８の左上コーナから描画が右から左に、そしてトップからボトムの方向へ開始し、描画処理が直線５００の位置を決定することを可能にすることが望ましい。直線５００の始点５０２がどこに存在するかを決定する１つの方法は、計画された二等辺三角形内の描画処理によって認識される第１のピクセルが直線５００の（ｘ０，ｙ０）始点に関連付けられたピクセル、すなわち、点５０２となるように第３の点が選択される。
【００４３】
図６Ａ、６Ｂ、６Ｃ及び６Ｄは、４つのレンダリングされる直線が位置することができる４つの配置を示す図である。図６Ａは、垂直位置における直線６０２の平面図である。図６Ｂは、水平位置における直線６０６の平面図である。図６Ｃｈａ、右下がりの傾斜位置における直線６１０の平面図である。図６Ｄは、左下がりの傾斜位置における直線６１２の平面図である。
【００４４】
図６Ａにおいて、始点（ｘ０、ｙ０）の座標ｘ及び直線６０２の終点（ｘ１，ｙ１）の座標ｘは等しい（すなわち、ｘ０＝ｘ＝１）。ここでは、仮に、ｙ２が垂直に直線６０２を二等分する線に沿って位置する場合、すなわち、ｙ２＝（ｙ１＋ｙ０）／２の場合、二等辺三角形が形成される。さらに、ｘ２が直線６０２の始点（ｘ０，ｙ０）の座標ｘの値よりも大きい場合、左から右、トップからボトムまで描画処理が、提案された二等辺三角形内の他のピクセルに届く前に、始点（ｘ０，ｙ０）（図６Ａにおける点６０４）に関連付けられたピクセルに最初に届く。
【００４５】
何故ならば、描画処理は作業するためのエリア、ｘ２≠ｘ０を必要とし、以下が成立する。図６Ａにおいて、ｘ０＝ｘ１である。ｘ２＝ｘ０の場合、ｘ０＝ｘ１＝ｘ２であり、これにより、直線を３Ｄグラフィックアクセレータ１０８に処理のために呈示する。３Ｄグラフィックアクセレータ１０８は、三角形を処理するものであり、以下の理由からこのような直線を処理しない。ｘ２＝ｘ０の場合、Ｘ０＝ｘ１＝ｘ２であり、三角形要素のエリアはゼロと等しい（すなわち、ｈ＝０）。エリアがゼロの場合、式（４）、（５）、（６）のゼロエラーによって分割される結果となり、したがって、どんな直線の描画も防がれる。したがって、ｘ２≠ｘ０である。
【００４６】
ｘ２が直線６０２の始点（ｘ０，ｙ０）のｘ座標の値よりも小さい場合がある。直線６０２は描画処理が、提案された二等辺三角形内の他のピクセルに届く前に始点（ｘ０，ｙ０）（図６Ａの始点６０４）に関連付けられたピクセルに最初に届くことを許可する。しかしながら、ｘ２＜ｘ０の場合の許可しうるｘ２の決定はさらなる計算時間及びプロセッサ時間を必要とする。したがって、図６Ａのような直線を有するシナリオにおける第３の点の選択の一部としての好ましいｘ２は、ｘ０よりも大きい（すなわち、ｘ２＞ｘ０）。
【００４７】
図６Ａのような直線を有するシナリオにおける第３の点の選択がさらに詳細に論じられる。仮に、第３の点の座標ｘ２が選択され、比較的簡単な式（４）、（５）及び（６）のエリア計算が行なわれ、このことは処理時間を節約し、その結果、電力消費を節約する。上述の式（７）から、二等辺三角形のエリアは、
エリア = (1/2)(a)(h)  (7)
ここで、”ａ”は直線６０２の長さであり、ｈは直線６０２の中点から第３の点に延びるＢ−線の長さである。ｈは、２／ａに等しく設定され、エリア＝１．００となる。したがって、電力を節約する一つの方法は、実際にエリアを計算することなくエリアを１に等しく設定することである。
【００４８】
図６Ａの直線６０２の長さ”ａ”はｙ１−ｙ０に等しい。さらに、図６Ａの提案された二等辺三角形の高さ”ｈ”はｘ２−ｘ０に等しい。言い換えれば、
h = 2/a  (27)
そのため、
x2 - x0 = 2/(y1-y0)  (28)
或いは
x2 = x0 + 2/(y1-y0)  (29)
上記の要約は、
ｘ０＝ｘ１の場合に、
If x0 = x1, then let x2 = x0 + 2/(y1-y0) and y2 = (y1+y0)/2  (30)
図６Ｂでは、始点（ｘ０，ｙ０）の座標ｙ及び直線６０２の終点（ｘ１，ｙ１）のｙ座標は等しい（或いは、ｙ０＝ｙ１）。ここで、直線６０２を垂直に等分する線、すなわち、ｘ２＝（ｘ１＋ｘ０）／２に沿ってｘ２が位置する場合に、二等辺三角形が形成される。さらに、ｙ２が直線６０２の始点（ｘ０，ｙ０）のｙ座標の値よりも大きい場合、左から右、トップからボトムまで描画処理が、提案された二等辺三角形内の他のピクセルに届く前に、始点（ｘ０，ｙ０）（図６Ｂにおける点６０８）に関連付けられたピクセルに最初に届く。図６Ａにおいて適用されたものと同じロジックである。
【００４９】
If y0 = y1, then let y2 = y0 + 2/(x1-x0) and x2 = (x1+x0)/2  (31)
図６Ｃにおいて、直線６１０の始点（x0,y0)のｙ座標及び終点(x1,y1)のｙ座標が等しくない（或いは、ｙ０≠１）。加えて、ｘ０＜ｘ１である。図６Ａ及び図６Ｂにおいても同様に、第３の点（ｘ２，ｙ２）が、直線６１０を垂直に二等分する線に沿って位置する線に位置する場合に二等辺三角形が形成される。図６Ｃの点６１２を含むピクセルが他のピクセルの前に最初に描画されることを保証するために、ｙ２はｙ０よりも小さくないべきであり、ｘ２はｘ０よりも小さいべきである。言い換えれば、
If y0 ≠ y1 & x0 < x1, let y2 ≧ y0 and x2 ≧ x0  (32)
電力省力化方法を計算するために、比較的シンプルな図６Ｃにおいて配置されているような直線について提案されている二等辺三角形のエリアを形成することが望ましい。式（２７）から、このことは、
h = 2/a  (27)
図５の直線５００は図６Ｃの直線シナリオにフィットし、この提案を調査するための良い例として取り扱う。
【００５０】
直線２００（直線５００）の長さ”ａ”は式（２５）から２．８として計算されたことをリコールする。h=2/(2.80)である場合に、このような二等辺三角形のエリアはある値を有する。さらに、式（２４）から、直線５００は式（２６）から線方程式y2=-0.72(x2)+5.03によって定義される。
【００５１】
h=2/(2.80)であり、線方程式y2=-0.72(x2)+5.03及び直線５００の中点を通る垂線上のある点、すなわち、(2.33,3.35)=(xm,ym)（図５）では、(x2,y2)が式（２５）によって見つけられ、以下のように書き直される。
【００５２】
h = [(x2-xm)^2+(y2-ym)^2)]^(1/2)  (33)
2/(2.80) = [(x2-2.33)^2+(y2-3.35) ^2)]^(1/2)  (34)
ここで、
y2 = -0.72x2 + 5.03
式（３４）に代入して、
(2/(2.80))^2 = (x2-2.33) ^2+((-0.72x2 + 5.03)-3.35)^2
0.51 = (x2-2.33)^2 + ((-0.72x2 + 1.68)^2
0.51 = [(x2)^2-4.66x2+5.43] + [0.52(x2)^2-2.42x2+2.82]
0.51 = 1.52(x2)^2-7.08x2+8.25
0 = 1.52(x2)^2-7.08x2+7.74
両辺を１．５２で除すると、
0 = (x2)^2-4.66x2+5.09
この多項式を整数で因数分解すると、以下の式が得られる。
【００５３】
0 = (x2-2.91)(x2-1.75)
x2 = 2.91 or x2 = 1.75
図６Ｃにおいて配置された直線についてx2≧x0であることをリコールする。図５の直線５００について、x0=1.51である。従って、この場合においては、x2は2.91或いは1.75のいずれか一方である。x2が2.91(x2=2.91)に設定された場合,y2=2.93=-0.72(2.91)+5.03であるので、
(x2, y2) = (2.33, 2.93)  (35)
計算電力を省力化する他の方法は、図６Ｃにおける配置について、x2=x0  或いはy2=y0とすることである。y2=y=0の図５における直線２００について、x2は、単に線５０８の式から以下のように計算される。
【００５４】
y2 = 2.21 = -0.72x2 + 5.03
x2 = 3.90 = (2.21 − 5.03)/(-0.72)
故に、
(x2, y2) = (3.90, 2.21)
図６Ｃにおける配置についての第３の点の座標(x2,y2)の単純な計算のトレードオフは、図６Ｃの二等辺三角形のエリアを決定するために必要とされるより大きな計算である。図６Ｃに関しては、上述のことは以下のように要約される。
【００５５】
If y0 ≠ y1 and x0 < x1, let y2 ≧ y0 and x2 ≧ x0 and
let (エリア = 1 or y2 = y0 or x2 = x0)  (36)
図７は、上記式（３５）において(x2,y2)=(3.90,2.21)に設定された第３の点７０４とともに描かれた二等辺三角形７０２の平面図である。二等辺三角形７０２は、始点５０２及び終点５０４との間の直線５００を含む。
【００５６】
図６Ｄにおいて、始点(x0,y0)のｙ座標及び直線６１０の終点(x1,y1)のｙ座標は等しくない（すなわち、y0≠y1)。加えて、x0>x1である。図６Ｃも同様に、第３の点(x2,y2)が直線６１４を垂直に二等分する線に沿って位置する場合に、二等辺三角形が形成される。図６Ｄの点６１６を含むピクセルが他のピクセルよりも前に最初に描画されることを保証するために、y2はymよりも大きいべきであり、x2はxmよりも大きいべきである。言い換えれば、
If y0 ≠ y1 and x0 > x1, let y2 > (y1+y0)/2 and x2 > (x1+x0)/2  (37)
図６Ｃの直線において、計算電力を省力化するための同様の選択が図６Ｄの直線の処理のために行なわれる。式（３７）に加えて、エリアを１（エリア＝１）に設定することは、エリアを計算するプロセッサの計算負荷を緩和する。しかし、第３の点(x2,y2)の座標を決定するプロセッサの計算負荷を増大する。このことは、以下のように要約される。
【００５７】
If y0 ≠ y1 and x0 > x1, let y2 > (y1+y0)/2 and x2 > (x1+x0)/2 and
let (エリア = 1 or y2 = y1 or x2 = x0)  (38)
一般的に、図１のシステムプロセッサ１０２は、その三角形要素の第３の点(x2,y2)の座標及び三角形要素のエリアの双方を決定する。１つのシステムプロセッサは、三角形要素の第３の点の座標を計算することよりも三角形要素エリアを計算するほうがより効率的であり、このような効率性はエリア＝１を式（３８）のデフォルトとすることにより活かされる。ステップ３０２においてシステムプロセッサ１０２が入力を受信し、３つの線、y0≠y1及びx0>x1を生成し、配置する場合に、システムプロセッサ１０２は第１の線についてエリア＝１とし、第２の線についてy2=y1とし、第３の線についてx2=x0とする。このような方法で、システムプロセッサ１０２は、全ての３つの線についてエリア＝１である場合に、より多くの処理回路を利用することができる。
【００５８】
図６Ａ乃至図６Ｄを通しての式は、第３の点(x2,y2)の選択のための以下の式を含むように要約される。
【００５９】
If x0 = x1, then let x2 = x0 + 2/(y1-y0) and y2 = (y1+y0)/2  (30)
If y0 = y1, then let y2 = y0 + 2/(x1-x0) and x2 = (x1+x0)/2  (31)
If y0 ≠ y1 and x0 < x1, let y2 ≧ y0 and x2 ≧ x0 and
let (area = 1 or y2 = y0 or x2 = x0)  (36)
If y0 ≠ y1 and x0 > x1, let y2 > (y1+y0)/2 and x2 > (x1+x0)/2 and
let (area = 1 or y2 = y1 or x2 = x0)  (38)
システムプロセッサ１０２が図３の方法３００におけるステップ３０６での第３の点の選択を開始し、３つの点が三角形を形成するようにステップ３０４の命令を追加することをリコールする。ステップ３０８では、方法３００は第３の点(x2,y2)の座標の選択を開始する。
【００６０】
式(30),(31),(36)及び(38)は第３の点(x2,y2)の座標の選択に使用される。ステップ３１０では、方法３００がx0=x1であるかを決定する。x0=x1である場合には、方法３００は、ステップ３１２でx2=x0+2/(y1-y0)及びy2=(y1+y0)/2とする。x0≠x1である場合には、方法３００はy0=y1であるかをステップ３１４で決定する。y0=y1である場合には、方法３００はステップ３１８に進み、直線５００の垂直二等分線の式を得る。方法３００は、さらに、ステップ３１４からステップ３２０へ進む。
【００６１】
ステップ３２０では、y0≠y1及び方法３００はx0<x1であるか否かを決定する。ステップ３２０でx0<x1でないと判断された場合には、方法３００はステップ３２２でy2≧y0及びx2≧x0とする。ステップ３２４では、方法３００はさらにエリア=1  或いはy2=y0  或いはx2=x0とする。ステップ３２０でx0がx1よりも小さくないと判断された場合、方法３００はステップ３２６に移る。ステップ３２６では、y0≠y1 及びx0>x1である。ステップ３２８では、方法３００はy2>(y1+y0)/2及びx2>(x1+x0)/2とする。ステップ３３０では、方法３００はエリア＝１或いはy2=y1或いはx2=x0である。
【００６２】
ステップ３１８、ステップ３２４及びステップ３３０から、方法３００はステップ３３２に進む。ステップ３３２では、第３の点の座標値(x2,y2)を引き出すために方法３００はステップ３１８において取得された線方程式、ステップ３２４或いはステップ３３０からの適切な入力を採用する。ステップ３１２、３１６及びステップ３３２から方法３００はステップ３３４に移行する。ステップ３３４では、方法３００は第３の点の座標値(x2,y2)を格納する。
【００６３】
ステップ３０８における第３の点(x2,y2)の座標の選択を開始するためのステップ３０６からの処理に加えて、方法３００はさらにステップ３０６からステップ３３６にすすむ。ステップ３３６では、方法３００は第３の点(x2,y2,K2)についての属性値K2を選択する。方法３００は、選択された属性値が直線２００に沿ったピクセルの計算された属性値に影響を与えないように、第３の点(x2,y2,K2)についての属性値K2を選択する。例えば、頂点(x2,y2)に割り当てられる属性Ｋ２を決定するために、コマンドストリング(2)及び式(11)の各属性の平均値が利用される。
【００６４】
draw_line (x0, y0, K0, x1, y1 K1)  (1)
draw_line (1.51, 2.21, 8α, 240R, 0G, 56B, 23RS, 0GS, 0BS, 4u, 256v,
3.15, 4.48, 45α, 210R, 0G, 7B, 99RS, 180GS, 45BS, 0u, 16v)  (2)
K2 = (K0 + K1)/2  (11)
コマンドストリング（２）の拡散色アルファ（”α”）平均値は２６．５（＝（８＋４５）／２）である。コマンドストリング（２）の拡散色の赤（”Ｒ”）は２７５（＝（２４０＋２１０）／２）である。コマンドストリング（２）の拡散色の緑（”Ｇ”）は０（＝（０＋０）／２）である。式（３５）の座標を利用し、残存する属性を計算することにより、第３の点（Ｋ２）についての頂点コマンドストリングは、
vertex_K2(3.90, 2.21, 26.5α, 275R, 0G, 31.5B, 61RS, 90GS, 22.5BS, 2u, 136v)  (39)
代替的な実施の形態においては、システムプロセッサが、ステップ３０２で三角形（ｘ０，ｙ０，ｋ０），（ｘ１，ｙ１，ｋ１），（ｘ２’，ｙ２’，ｋ２’）を定義した情報及び三角形のエッジを直線で描画するための要求を受信した場合に、Ｋ２’の属性値がＫ２＝（Ｋ０＋Ｋ１）／２のようなＫ２を引き出すように調整されることが可能である。
【００６５】
ステップ３３８では、方法３００はステップ３３６で引き出された属性Ｋ２を有するステップ３３４での(x2,y2)座標を頂点_K2コマンドストリングに結合する。同時に、コマンドストリング（２）及びコマンドストリング（３９）は、図７の二等辺三角形７０２を補償する。ステップ３４０では、方法３００はステップ３０４での命令及び頂点_K2コマンドストリングを組み合わせ、二等辺三角形要素を補償する。ステップ３４２では、図面プロセッサ１１４が二等辺三角形要素７０２を受信する。
【００６６】
図８は、二等辺三角形要素７０２を発展するための方法８００である。境界ボックスアルゴリズムが図７の二等辺三角形要素７０２を描くのに使用される。境界ボックス９０２は、直線５００について設置される。境界ボックス９０２が直線５００の始点５０２及び終点５０４の位置に基づいて（Ｘｍｉｎ，Ｙｍｉｎ）及び（Ｘｍａｘ，Ｙｍａｘ）を得ることによって設置される。（Ｘｍｉｎ，Ｙｍｉｎ）及び（Ｘｍａｘ，Ｙｍａｘ）は（ｘ０，ｙ０）及び（ｘ１，ｙ１）のラウンドされたスケールの整数である。ステップ８０２では、方法８００は（Ｘｍｉｎ，Ｙｍｉｎ）及び（Ｘｍａｘ，Ｙｍａｘ）を得る。ステップ８０４では、境界ボックス９０２は（Ｘｍｉｎ，Ｙｍｉｎ）及び（Ｘｍａｘ，Ｙｍａｘ）を利用する直線５００について配置される。
【００６７】
図９は直線５００について配置される境界ボックス９０２を有する三角形７０２の平面図である。ｘ及びｙについての最小値及び最大値をラウンドし、画面空間座標に対するモデル空間座標をスケーリングし、その結果、境界ボックス９０２が（Ｘｍｉｎ，Ｙｍｉｎ）（＝（１５，２２））９０４及び（Ｘｍａｘ，Ｙｍａｘ）（＝（３２，４５））９０６に配置される。
【００６８】
図９の直線５００を描画することは、本質的に、直線５００が通過するこれらピクセルを照明する補間処理である。しかしながら、画面空間整数に対するモデル空間座標値をラウンドすることが、特に、比較的少ないピクセルを有するセル電話のような低解像度表示画面では、直線が階段状外観(stair steps appearance)(しばしば、”ジャギー”と呼ばれる。）で表示される。従って、このジャギーを最小化するシェーディング或いはブレンディング提供するために直線５００が通過するピクセルの近くのピクセルを照明することは重要である。
【００６９】
図９の二等辺三角形の内部では、画面空間における（ｘ，ｙ）位置のリニア関数Ｋは、
K(x, y) = (Ak)(x) + (Bk)(y) + Ck  (3)
ここで、
K = α, R, G, B, RS, GS, BS, u, 及び v;
(x, y)は、１つの画面ピクセルの画面空間座標を示しており、
Ak, Bk, 及び Ckは、リニア係数を示している。
【００７０】
リニア係数Ａ，Ｂ，Ｃは式（４），（５），（６）によって取得され、これらは３つの頂点５０２、５０４及び７０４に関連付けられている。係数Ａ，Ｂ，Ｃを得ることによって、式（３）に従ったいずれの所望の画面空間（ｘ、ｙ）位置での属性値を得ることができる。
【００７１】
式（３）に基づいて、ピクセル毎に各属性値を直接評価することは、２つの乗算器及び２つの加算器を必要とし、このことは、非常に高価なソリューションである。望ましくは、アルゴリズムベースの境界ボックスが、加算（”＋”）動作のみで直線５００近傍のピクセルを描画するために使用される。加算動作のみを利用するアルゴリズムベースの１つの境界ボックスはエッジ式を利用する。三角形の３つのエッジは、プレーナー（アフィン）関数によって表現される。このプレーナー関数は、エッジの左に対して負であり、エッジの右に対して正であり、エッジ上ではゼロである。
【００７２】
E0(x,y) = (A0)(x) + (B0)(y) + C0  (39)
E1(x,y) = (A1)(x) + (B1)(y) + C1  (40)
E2(x,y) = (A2)(x) + (B2)(y) + C2  (41)
上記３つの式（３９），（４０），（４１）は、６つの乗算及び６つの加算動作を必要とし、これらはかなり高価である。各式（３９），（４０）及び（４１）の点（ｘ＋１，ｙ）から点（ｘ，ｙ）を減算し、結果式は単に加算演算を使用する。例えば、式（３９）について、
E0(x+1,y) = (A0)(x) + (A0) + (B0)(y) + C0
-E0(x,y) = -(A0)(x) - (B0)(y) - C0
E0(x+1, y) - E0(x,y) = A0  (42)
同様に、Ｂ０についての式が得られる。
【００７３】
E0(x, y+1) - E0(x,y) = B0  (43)
言い換えれば、一度、最初のエッジ関数Ｅ０，Ｅ１，Ｅ２がピクセル（Ｘｍｉｎ，Ｙｍｉｎ）について決定される。そして、＋ｘ方向の同じ水平スキャン線上の右に対して次のピクセルについてのエッジ関数が、Ａ０を加えることによって得られ、＋ｙ方向の同じ垂直線上より下の次のピクセルについてのエッジ関数がＢ０を加えることによって得られる。
【００７４】
Ei(Xmin, Ymin) = (Ai)(Xmin) + (Bi)(Ymin) + C0, where (i = 0, 1, 2)  (44)
及び
Ei(Xmin + 1, Ymin) = Ei + A0, where (i = 0, 1, 2)  (45)
Ei(Xmin, Ymin +1) = Ei + B0, where (i = 0, 1, 2)  (46)
描画処理は、さらに追加的な式を通して左或いは上へ移動する。
【００７５】
Ei(Xmin - 1, Ymin) = Ei - A0, where (i = 0, 1, 2)  (47)
Ei(Xmin, Ymin -1) = Ei - B0, where (i = 0, 1, 2)  (48)
方法８００に戻る。方法８００は、ステップ８０６で境界ボックス９０２の左上ピクセルでの３つのエッジ式についての初期値を計算する。本例において、境界ボックス９０２の左上ピクセルがピクセル９０４である。式（４４）はピクセル９０４の３つのエッジ式の初期値を計算するために用いられる。
【００７６】
ステップ８０８では、方法８００は境界ボックス９０２の左上ピクセル９０４から次のピクセル９０８へ右へ向かって動く。ステップ８１０では、方法８００は、ピクセルについてのE0がゼロであるか否かについて決定する。ピクセルについてのＥ０がゼロでない場合には、次に、方法８００が、ステップ８１２で、右のピクセルへ移動し、ステップ８１０へ戻る。
【００７７】
三角形のＥ０エッジがエッジ上の０であるプレーナー（アフィン）関数によって表わされることをリコールする。Ｅ０＝０である場合、方法８００は（ｘ０，ｙ０）を含むピクセルに到達する。そのピクセルのＥ０がゼロに等しい場合、方法８００はピクセルが直線５００の始点５０２（ｘ０，ｙ０）を含むステップ８１４を終了する。ステップ８１６で、方法８００はピクセルを描画するかを決定する。
【００７８】
全てのピクセルが直線５００を照明するわけではない。いくつかのピクセルはシェーディング或いはブレンディングを提供し、他のピクセルは直線５００の直接指示を提供する。しかしながら、境界ボックス９０２内の大部分のピクセルは、おそらく直線５００を照明せず、したがって、描画されることもない。境界ボックス９０２内のピクセルをスキップすることによって、直線５００が描画される速度が増大する。
【００７９】
図１０は二等辺三角形７０２の平面図である。三角形の３つのエッジがプレーナー（アフィン）関数によって表わされることをリコールする。プレーナー関数は、エッジの左では負であり、エッジの右では正であり、エッジ上ではゼロである。二等辺三角形７０２の外側のピクセルが負符号”−”とともに示されており、直線５００(エッジＥ０）に対して二等辺三角形７０２の内側のピクセルがプラス符号”＋”とともに示されている。二等辺三角形７０２の周辺のエッジＥ０上のピクセルがゼロ”０”とともに示されている。式（３９）、（４０）、及び（４１）が各ピクセルの−，＋，０を決定するために使用される。
【００８０】
与えられた水平或いは垂直のスキャン線のために、ゼロ（”０”）ピクセルのすぐ隣の負ピクセル或いは正ピクセルのみが直線５００を照明する。さらに、図１０内に含まれているものは境界１００２である。境界１００２内は、直線５００の表示に本質的に影響を有する全てのピクセルである。境界１００２の外側は、直線５００の表示に影響を及ぼさない全てのピクセルである。直線５００の効率的な描画は境界１００２内に位置するピクセルのみの描画を評価する。
【００８１】
ステップ８１４で位置する始点（ｘ０，ｙ０）については、方法８００はゼロ（”０”）ピクセルのすぐ隣の負ピクセル及び／又は正ピクセルの描画を評価する。ステップ８１８では、方法８００はＥｉ（（ｘ０）−１，ｙ０）の３つのエッジ式の値を計算し、ピクセルを描画するかどうかを決定する。ステップ８２２では、方法８００はＥｉ（（ｘ０）＋１，ｙ０）の３つのエッジ式の値を計算し、そのピクセルを描画するかどうかを決定する。
【００８２】
ステップ８２４では、方法８００は水平増加値ｆ=0及び垂直増加値ｇ=1をセットする。水平増加値ｆ=0及び垂直増加値ｇ=1をセットすることにより、そのピクセルを評価するために、方法８００は垂直方向下に１ピクセル分移動する。ステップ８２６では、方法８００は(x0+f,y0+g)=(x1,y1)であるか否かを決定する。(x0+f,y0+g)が(x1,y1)と等しい場合、次に、方法８００は直線５００の終点５０４を含むピクセルに到達し、ステップ８５４に進む。(x0+f,y0+g)が(x1,y1)と等しくない場合、方法８００は直線５００の終点５０４を含むピクセルに到達しない。
【００８３】
(x0+f,y0+g)が(x1,y1)と等しくない場合、方法８００は、ステップ８２８で、エッジ式Ei(x0+f, y0+g)の値が負、０、正であるかを決定する。
【００８４】
エッジ式Ei(x0+f, y0+g)の値が負の場合、ステップ８３０で、方法８００はエッジ式Ei(x0+f, y0+g)の値を計算し、ピクセルを描画するか否かを決定する。ステップ８３２では、方法８００はエッジ式Ei(x0+f+1, y0+g)の値を計算し、そのピクセルを描画するかを決定する。ステップ８３４では、方法８００は、エッジ式Ei(x0+f+2, y0+g)についての値を計算し、ピクセルを描画するか否かを決定する。
【００８５】
ステップ８３６では、f=f+1及びg=g+1に設定し、方法８００はステップ８２６に戻る。
【００８６】
エッジ式Ei(x0+f+1, y0+g)の値がゼロである場合には、方法８００は、ステップ８３８で、エッジ式Ei(x0+f-1, y0+g)についての値を計算し、ピクセルを描画するか否かを決定する。ステップ８４０では、エッジ式Ei(x0+f, y0+g)についての値を計算し、ピクセルを描画するか否かを決定する。ステップ８４２では、方法８００はエッジ式Ei(x0+f+1, y0+g)についての値を計算し、ピクセルを描画するか否かを決定する。
【００８７】
ステップ８４４では、g=g+1を設定し、方法８００はステップ８２６に戻る。
【００８８】
エッジ式Ei(x0+f+1, y0+g)の値が正である場合、方法８００はステップ８４６でエッジ式Ei(x0+f, y0+g)についての値を計算し、ピクセルを描画するか否かを決定する。ステップ８４８では、エッジ式Ei(x0+f-1, y0+g)についての値を計算し、ピクセルを描画するか否かを決定する。ステップ８５０では、方法８００は、エッジ式Ei(x0+f-2, y0+g)についての値を計算し、ピクセルを描画するか否かを決定する。
【００８９】
ステップ８５２では、f=f-1及びg=g+1を設定し、方法８００はステップ８２６に戻る。
【００９０】
ステップ８２６において、(x0+f,y0+g)=(x1,y1)であると判断された場合、描画処理は直線５００の終点５０４を含むピクセルに到達し、方法８００は、ピクセルが直線５００の終点５０４(x1,y1)を含むステップ８５４で終了する。
【００９１】
ステップ８５６では、方法８００は３つのエッジ式Ei(x1, y1)についての値を計算し、ピクセルを描画するか否かを決定する。ステップ８５８では、方法８００は３つのエッジ式Ei((x1)-1, y0)についての値を計算し、ピクセルを描画するか否かを決定する。ステップ８６０では、方法８００は３つのエッジ式Ei(x1, (y0)+1)についての値を計算し、ピクセルを描画するか否かを決定する。ステップ８６２では、方法８００は、３つのエッジ式Ei((x1)+1, y0)についての値を計算し、ピクセルを描画するか否かを決定する。
【００９２】
方法８００は、与えられたピクセルについて描画しないことを決定した場合、その与えられたピクセルについての描画情報は図面メモリ１１２にはない。格納された描画情報は、直線グラフィックオブジェクトの２次元表現を定義する表示点のコンパイルされたセットを含む。本例においては、直線グラフィックオブジェクトは、図７のベース５００である。
【００９３】
十分に描画された関連するピクセル及び図面メモリ１１２に格納されたビットマップ情報について、方法８００は、ステップ８６４で、ビットマップ情報を図１のフレームバッファ１１６に渡す。ステップ８６６では、フレームバッファ１１６は、モデル空間線５００の画面空間直線が表示される場合に、フレームバッファ１１６はビットマップ情報を表示画面１１８に渡す。
【００９４】
上記に加えて、方法８００は、描画直線セグメントの階段状外観を平滑化するためのデジタル差分解析器（ＤＤＡ）アルゴリズム及びBresenahm's線アルゴリズムのような追加的な装置レベルテクニックを利用する。デジタル差分解析器（ＤＤＡ）アルゴリズム及びBresenahm's線アルゴリズムの双方は、線経路に沿ってピクセルの強さを調整することに基づく。
【００９５】
三角形７０２の全ての３つのエッジをテストする必要はない。テストに先立ち、エッジＥ０が三角形７０２のベースであることが既知であり、したがって、所望の線である。残りの２つのエッジは予め定められており、したがって、この情報は三角形７０２の残りの２つのエッジについて既知である。エッジＥ０をテストする際には、処理はまさにストラドル（またがり）の線であり、処理が残りの２つのエッジをクロスするか否かは処理において小さな差異を作る。残りの２つのエッジのうちの１つをクロスすることは、プロセスに線の終わりに到達したことを知らせるが、境界ボックスはすでにそのような決定を行なうような技術を提供する。したがって、エッジＥ０をテストすることのみが、線を描画するのに必要とされる。
【００９６】
図１１は、いくつかの実施の形態が実現されたコンピュータシステム１１００である。いくつかの実施の形態においては、開示された技術は、ハードコードされて、グラフィック製品専用のハードウェア製品及び／又はコンピュータ読み出し可能な媒体に格納されたコンピュータ読み取り可能な命令(ソフトウェア）で実現される。
【００９７】
コンピュータシステム１１００は、バス１１０５、プロセッサ１１１０、システムメモリ１１１５、読み出し専用メモリ１１２０、永久記憶装置１１２３、入力装置１１３０、出力装置１１３５及び代替プロセッサ１１４０を有している。
【００９８】
バス１１０５は、全てのシステムバス、周辺バス及びチップセットバスをまとめて示しており、コンピュータシステム１１００の多くの内部装置と通信化可能に接続する。例えば、バス１１０５はプロセッサ１１１０を呼び出し専用メモリ１１２０、システムメモリ１１１５及び永久記憶装置１１２５に通信可能に接続する。
【００９９】
呼び出し専用メモリ（ＲＯＭ）１１２０は固定データ及び命令を格納し、これらはプロセッサ１１１０及びコンピュータシステムの他のモジュールによって必要とされる。永久記憶装置１１２５は、一方、読み出し及び書き込み可能なメモリであっても良い。この装置は、不揮発性メモリユニットであり、コンピュータシステム１１００がオフの場合でああても命令及びデータを格納する。ある実施の形態は大容量記憶装置（磁気或いは光ディスク及びその対応するドライブなど）を永久記憶装置１１２５として使用しても良い。他の実施の形態は、リムーバブル格納装置(フロッピー（登録商標）ディスク或いはジップ（登録商標）ディスク及びその対応するドライブなど）を永久記憶装置１１２５として使用しても良い。
【０１００】
永久記憶装置１１２５と同様に、システムメモリ１１１５は読み出し及び書き込み装置であっても良い。しかしながら、記憶装置１１２５と異なり、システムメモリは、ランダムアクセスメモリ（ＲＡＭ）のように揮発性読み出し及び書き込みメモリであっても良い。システムメモリは、プロセッサがランタイム時に必要とするいくつかの命令及びデータを格納する。
【０１０１】
ある実施の形態においては、ここで述べられた方法を実行するのに必要とされる命令及び／又はデータは、システムメモリ１１１５、永久記憶装置１１２５、読み出し専用メモリ１１２０或いはこれら３つのどんな組み合わせに格納されても良い。例えば、種々のメモリユニットはアプリケーションの命令及び／又はアプリケーションによって生成されたグラフィックデータを含む。ある実施の形態においては、システムメモリ１１１５及び／又は永久記憶装置１１２５はキャッシュ及び／又はバッファを有する。
【０１０２】
これら種々のメモリユニットから、プロセッサ１１１０は実行する命令及び、ここで述べられたプロセスを実行するためのプロセスのためのデータを検索する。ある実施の形態においては、プロセッサ１１１０は、オンーチップキャッシュ１１１２を利用し、プロセッサ１１１０によって最近アクセスされ、或いは生成されたデータを保持する。ある実施の形態においては、代替プロセッサ１１４０は、ここで述べられたプロセスを実行するための命令及びプロセスを実行する。
【０１０３】
バス１１０５は、さらに入力装置１１３０及び出力装置１１３５へ接続する。入力装置１１３０はユーザに情報を通信することを可能とし、コンピュータシステム１１００へのコマンドを選択することを可能とする。入力装置１１３０は、英数字キーボード及びカーソルコントローラを含む。出力装置１１３５はコンピュータシステム１１００によって生成されたイメージをプリントし、表示することができる。出力装置はプリンタ及び陰極管（ＣＲＴ）或いは液晶装置（ＬＣＤ）のような表示装置を含む。
【０１０４】
最後に、図１１に示すように、バス１１０５はさらにコンピュータシステム１１００を、例えば、ネットワークアダプタ（図示せず）を通してネットワーク１１６５に接続する。同様に、コンピュータシステム１１００はコンピュータのネットワーク（ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（”ＷＡＮ”）或いはインターネットなど）の一部であっても良く、ネットワーク（インターネットなど）のネットワークであっても良い。コンピュータシステム１１００のコンポーネントの全て或いはいずれかが使用される。しかしながら、当業者であれば他のシステム構成もさらに使用することができることは明らかである。
【０１０５】
現存する３Ｄグラフィックアクセレータルーチンの使用は線を生成するのに必要とされる電力を最小化する。このことは、セル電話及び時計のような低電力資源システムにおいて特に重要である。
【０１０６】
多くの特定の詳細を参照しながら詳細が述べられている一方、当業者は、開示の精神を離れることなく詳細が特定のフォームに埋め込まれることが可能であることを認識するであろう。したがって、当業者であれば、開示された詳細が前述の図示した詳細に限定されるものではなく、むしろ添付した請求の範囲によって定義されるべきであることを理解できるであろう。
【０１０７】
当業者は情報及び信号が種々の異なる技術及び技能のいずれかを利用することにより表わされることを理解するであろう。例えば、上述の記述を通して参照されるデータ、命令、コマンド、情報、信号、ビット、シンボル及びチップが電圧、電流、電磁波、磁界、磁粒子、光学フィールド、光学粒子、これらの組み合わせによって表現される。
【０１０８】
当業者は、さらに、ここにおいて述べられた実施の形態に関連付けて述べられた種々の図示した論理ブロック、モジュール、回路及びアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア或いはこれの組み合わせとして実現されることを認識するであろう。ハードウェア及びソフトウェアの交換可能性を図示するために、種々の実例となるコンポーネント、ブロック、モジュール、回路及びステップが、上述の一般的なそれらの機能の観点から述べられてきた。このような機能性がハードウェアとして、或いはソフトウェアとして実現されるか否かは特定のアプリケーション及び全体のシステムに課された設計条件に依存する。設計の当業者は各特定のアプリケーションについて種々の方法で述べられた機能性を実現することができるか、このような実現性の決定は開示された精神から離れることを引き起こすものとして解釈されるべきではない。さらに、方法ステップは開示の精神を離れることなく交換可能である。
【０１０９】
ここにおいて述べられた実施の形態に関連して説明された種々の実例となる論理的なブロック、モジュール及び回路が、ここにおいて述べられた機能を実行するために設計された汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）或いは他のプログラマブル論理装置、個別ゲート或いはトランジスタロジック、個別ハードウェアコンポーネント、或いはこれらのいずれの組み合わせで実現され、或いは実行される。汎用目的プロセッサは、マイクロプロセッサでも良いが、代替的に、プロセッサはどんな通常のプロセッサ、コントローラ、マイクロコントローラ或いはステートマシーンであっても良い。プロセッサは、さらに、計算装置、例えば、ＤＳＰ及びマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに関連する１つ以上のマイクロプロセッサ或いは他の構成でも実現される。
【０１１０】
ここにおいて述べられた実施の形態に関連して述べられた方法或いはアルゴリズムのステップは、直接、プロセッサによって実行されるハードウェア或いはソフトウェアモジュール、或いはこれらの組み合わせに埋め込まれる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ或いはこの分野において知られている他のいずれかの形式の記憶媒体に存在する。例示的な記憶媒体は、プロセッサに接続され、プロセッサは情報を記憶媒体から読み出し、記憶媒体へ書き込む。また、記憶媒体はプロセッサにとって必要なものである。プロセッサ及び記憶媒体はＡＳＩＣ内に存在する。ＡＳＩＣは、ユーザ端末内に存在する。また、プロセッサ及び記憶媒体はユーザ端末内における個別コンポーネントとして存在する。
【０１１１】
開示された実施の形態の前述の記述は、当業者に与えられ、この記述を作成し、利用することを可能にする、これら実施の形態に対する種々の改良は、当業者にとって明らかに容易であり、ここにおいて述べられた一般的な原則は本開示の精神を離れることなく他の実施の形態に適用可能である。従って、本開示は、ここにおいて示された実施の形態に限定されることを意図するものではなく、ここにおいて述べられた原則及び新規な特徴と一致する最も広い観点に従うものである。
【図面の簡単な説明】
【０１１２】
【図１】図１は、いくつかの実施の形態が改良されたシステム１００である。
【図２】図２は、表示装置１１８上の画面空間において直線として描かれたモデル空間直線２００を示す。
【図３】図３は、直線２００から三角形要素を構築するための方法３００のフローチャートである。
【図４】図４は、二等辺三角形４００の平面図である。
【図５】図５は、直線５００として再度描かれた直線２００の平面図である。
【図６Ａ】図６Ａは、垂直位置における直線６０２の平面図である。
【図６Ｂ】図６Ｂは、水平位置における直線６０６の平面図である。
【図６Ｃ】図６Ｃは、右斜下位置における直線６１０の平面図である。
【図６Ｄ】図６Ｄは、左斜下位置における直線６１２の平面図である。
【図７】図７は、上述の式（３５）における（ｘ２，ｙ２）＝（３．９０，２．２１）にセットされた第３点７０４で描かれた二等辺三角形７０２の平面図である。
【図８】図８は、二等辺三角形要素７０２を展開する方法８００である。
【図９】図９は、直線５００について位置された境界ボックス９０２を有する三角形７０２の平面図である。
【図１０】図１０は、二等辺三角形７０２の平面図である。
【図１１】図１１は、いくつかの実施の形態が改良されたコンピュータシステム１１００である。
【図１】
2008524756.tif 000003
【図２】
2008524756.tif 000004
【図３】
2008524756.tif 000005
【図４】
2008524756.tif 000006
【図５】
2008524756.tif 000007
【図６Ａ】
2008524756.tif 000008
【図６Ｂ】
2008524756.tif 000009
【図６Ｃ】
2008524756.tif 000010
【図６Ｄ】
2008524756.tif 000011
【図７】
2008524756.tif 000012
【図８】
2008524756.tif 000013
【図９】
2008524756.tif 000014
【図１０】
2008524756.tif 000015
【図１１】
2008524756.tif 000016
【国際調査報告】
2008524756.tif 000017
2008524756.tif 000018