整数演算の場合とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 整数演算の場合の意味・解説 

整数演算の場合

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/27 04:51 UTC 版)

ブレゼンハムのアルゴリズム」の記事における「整数演算の場合」の解説

中間点での関数値求め代わりに2点における関数値の差を使うことができる。それにより整数のみで計算可能となり、浮動小数点数を使うより一般に高速となる。この代替技法導出するため、その差を次のように定義するD = f ( x 0 + 1 , y 0 + 1 / 2 ) − f ( x 0 , y 0 ) {\displaystyle D=f(x_{0}+1,y_{0}+1/2)-f(x_{0},y_{0})} 始点では f ( x 0 , y 0 ) = 0 {\displaystyle f(x_{0},y_{0})=0} であるため、この式は中間点の関数値求めることと等価である。この式を変形する次のうになる。 D = [ A ( x 0 + 1 ) + B ( y 0 + 1 / 2 ) + C ] − [ A x 0 + B y 0 + C ] = A + 1 2 B {\displaystyle {\begin{aligned}D&=\left[A(x_{0}+1)+B(y_{0}+1/2)+C\right]-\left[Ax_{0}+By_{0}+C\right]\\&=A+{\frac {1}{2}}B\end{aligned}}} 中間点の関数値求め場合と同様、Dが正なら ( x 0 + 1 , y 0 + 1 ) {\displaystyle (x_{0}+1,y_{0}+1)} を選びさもなくば ( x 0 + 1 , y 0 ) {\displaystyle (x_{0}+1,y_{0})} を選ぶ。 さらに2つ目の点の選択次のうになる。 f ( x 0 + 2 , y 0 + 1 / 2 ) − f ( x 0 + 1 , y 0 + 1 / 2 ) = A = Δ y {\displaystyle f(x_{0}+2,y_{0}+1/2)-f(x_{0}+1,y_{0}+1/2)=A=\Delta y} f ( x 0 + 2 , y 0 + 3 / 2 ) − f ( x 0 + 1 , y 0 + 1 / 2 ) = A + B = Δ y − Δ x {\displaystyle f(x_{0}+2,y_{0}+3/2)-f(x_{0}+1,y_{0}+1/2)=A+B=\Delta y-\Delta x} この差が正なら ( x 0 + 2 , y 0 + 1 ) {\displaystyle (x_{0}+2,y_{0}+1)} を選びさもなくば ( x 0 + 2 , y 0 ) {\displaystyle (x_{0}+2,y_{0})} を選ぶ。この選択誤差蓄積によって一般化される。 以上でアルゴリズム導出完了した性能問題となるのは、Dの初期値で1/2という係数使っている点である。ここで必要なのは累積差分正負の符号だけなので、全てを2倍にしても結果には影響しないその結果次のように整数のみでこのアルゴリズム実装できる。 plot(x0,y0, x1,y1) dx=x1-x0 dy=y1-y0 D = 2*dy - dx plot(x0,y0) y=y0 for x from x0+1 to x1 if D > 0 y = y+1 plot(x,y) D = D + (2*dy-2*dx) else plot(x,y) D = D + (2*dy) f ( x , y ) = x − 2 y + 2 {\displaystyle f(x,y)=x-2y+2} で表される直線の (0,1) から (6,4) までをこのアルゴリズム計算した場合経過を以下に示す。dx=6、dy=3 である。 D=2*3-6=0 plot(0,1) 1から6までループx=1: D≤0: plot(1,1), D=6 x=2: D>0: y=2, plot(2,2), D=6+(6-12)=0 x=3: D≤0: plot(3,2), D=6 x=4: D>0: y=3, plot(4,3), D=6+(6-12)=0 x=5: D≤0: plot(5,3), D=6 x=6: D>0: y=4, plot(6,4), D=6+(6-12)=0 この描画結果右図に示す。描画座標上の交点(青い点)またはピクセル黄色四角形)で示されている。

※この「整数演算の場合」の解説は、「ブレゼンハムのアルゴリズム」の解説の一部です。
「整数演算の場合」を含む「ブレゼンハムのアルゴリズム」の記事については、「ブレゼンハムのアルゴリズム」の概要を参照ください。

ウィキペディア小見出し辞書の「整数演算の場合」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「整数演算の場合」の関連用語

整数演算の場合のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



整数演算の場合のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのブレゼンハムのアルゴリズム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS