JPH0478973A - ベクトルからのコサイン値算出方法 - Google Patents
ベクトルからのコサイン値算出方法Info
- Publication number
- JPH0478973A JPH0478973A JP2193697A JP19369790A JPH0478973A JP H0478973 A JPH0478973 A JP H0478973A JP 2193697 A JP2193697 A JP 2193697A JP 19369790 A JP19369790 A JP 19369790A JP H0478973 A JPH0478973 A JP H0478973A
- Authority
- JP
- Japan
- Prior art keywords
- value
- coordinate
- square
- cosine
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
この発明は、画像回転における回転角のコサイン値を算
出する方法に関する。
出する方法に関する。
ビットマツプシステムを構成するパーソナルコンピュー
タ等において、ビットマツプ画像の回転表示を行う場合
における回転角のコサイン値を算出する方法としては、
従来、以下に示すような方法がある。 ■第7図(a )に示すような方向ベクトル(a 、b
)が与えられている場合に、 cosθ=a / Va工+b” ・(1)
の値を、浮動小数点表示を用い、ニュートンラプソン法
等の数値計算アルゴリズムを利用して計算する方法。 ■上記(1)式の計算を固定小数点表示を用いて、第7
図(b)に例示するような開へい計算等の方法を用いて
行う方法。 ■第7図(c )に示すように各方向毎にコサイン値の
テーブルを用意し、与えられた方向ベクトルに対するコ
サイン値をそのテーブルを参照して求める方法。 これらの方法の特徴としては、■は高精度の計算が可能
であり、■は中精度の計算が可能であり、■は■、■よ
りも高速にコサイン値の導出が可能であるという点があ
げられる。
タ等において、ビットマツプ画像の回転表示を行う場合
における回転角のコサイン値を算出する方法としては、
従来、以下に示すような方法がある。 ■第7図(a )に示すような方向ベクトル(a 、b
)が与えられている場合に、 cosθ=a / Va工+b” ・(1)
の値を、浮動小数点表示を用い、ニュートンラプソン法
等の数値計算アルゴリズムを利用して計算する方法。 ■上記(1)式の計算を固定小数点表示を用いて、第7
図(b)に例示するような開へい計算等の方法を用いて
行う方法。 ■第7図(c )に示すように各方向毎にコサイン値の
テーブルを用意し、与えられた方向ベクトルに対するコ
サイン値をそのテーブルを参照して求める方法。 これらの方法の特徴としては、■は高精度の計算が可能
であり、■は中精度の計算が可能であり、■は■、■よ
りも高速にコサイン値の導出が可能であるという点があ
げられる。
ところで、上記■、■の方法は計算が複雑であるため大
きな実行モジュールを必要とし、計算に時間がかかると
いう欠点がある。また、■の方法は大きなデータ領域を
必要とし、しかも、算出可能なコサイン値はテーブルに
載せられた特定の方向のものに限られるという欠点があ
る。 そのため、比較的小さなビットマツプ画像(文字、アイ
コン等)を高速に回転する必要がある場合、例えば、建
築CADシステム等のアプリケーションにおいてしばし
ば見られる文字列の斜め表示を行うような場合には、上
記従来のいずれの方法も適していない。 そこで、この発明の目的は、回転角のコサイン値の算出
を、大きなデータ領域を必要とせず、小さな実行モジュ
ールで高速に行うことができるベクトルからのコサイン
値算出方法を提供することにある。
きな実行モジュールを必要とし、計算に時間がかかると
いう欠点がある。また、■の方法は大きなデータ領域を
必要とし、しかも、算出可能なコサイン値はテーブルに
載せられた特定の方向のものに限られるという欠点があ
る。 そのため、比較的小さなビットマツプ画像(文字、アイ
コン等)を高速に回転する必要がある場合、例えば、建
築CADシステム等のアプリケーションにおいてしばし
ば見られる文字列の斜め表示を行うような場合には、上
記従来のいずれの方法も適していない。 そこで、この発明の目的は、回転角のコサイン値の算出
を、大きなデータ領域を必要とせず、小さな実行モジュ
ールで高速に行うことができるベクトルからのコサイン
値算出方法を提供することにある。
上記目的を達成するため、この発明のベクトルからのコ
サイン値算出方法は、画像表示装置において画像を回転
表示するために、ベクトルで与えられた方向の基準座標
軸に対する角度のコサイン値を算出する方法であって、
算出精度を与えるための数値を設定し、上記ベクトルで
与えられた方向に基づきブレーゼンハムのアルゴリズム
に従って順次座標点を求めると共に、求めた座標点の座
標原点からの距離の二乗値を求め、その二乗値を上記設
定値の二乗値と比較して、その二乗値が上記設定値の二
乗値以上になったときに、その二乗値とその座標点の一
つ前に求めた座標点の座標原点からの距離の二乗値のう
ちのいずれか上記設定値の二乗値に近いかを求め、近い
ほうの二乗値を与える座標点の上記基準座標軸に対応す
る座標値と上記設定値とから上記コサイン値を算出する
ようにしたことを特徴としている。
サイン値算出方法は、画像表示装置において画像を回転
表示するために、ベクトルで与えられた方向の基準座標
軸に対する角度のコサイン値を算出する方法であって、
算出精度を与えるための数値を設定し、上記ベクトルで
与えられた方向に基づきブレーゼンハムのアルゴリズム
に従って順次座標点を求めると共に、求めた座標点の座
標原点からの距離の二乗値を求め、その二乗値を上記設
定値の二乗値と比較して、その二乗値が上記設定値の二
乗値以上になったときに、その二乗値とその座標点の一
つ前に求めた座標点の座標原点からの距離の二乗値のう
ちのいずれか上記設定値の二乗値に近いかを求め、近い
ほうの二乗値を与える座標点の上記基準座標軸に対応す
る座標値と上記設定値とから上記コサイン値を算出する
ようにしたことを特徴としている。
以下、この発明を図示の実施例により詳細に説明する。
第1図はこの発明の一実施例のコサイン値算出方法を実
現するためのシステム構成図である。 この第1図において、lは入力装置であり、この入力装
置1により、方向ベクトル(a 、b )と、計算精度
を与えるための数値M(以下、精度Mと呼ぶ)が入力さ
れる。また、2は、上記入力データに基づいて、第3図
に示すように、ブレーゼンハムのアルゴリズムに従って
、座標原点(0,0)から座標点(a 、b )の方向
に向かって、離散的な直線上を進行し、進行方向の離散
座標値(図の黒丸で示す点の座標値)を計算する装置で
あり、3は、進行距離(のの2乗、すなわち上記離散座
標値を与える座標点と座標原点との距離の2乗を計算す
る装置である。上記装置2は後述するように、上記装置
3によって計算され1ニI22かM2に最も近くなった
座標点のX座標値を出力装置4により出力する。このX
座標値はMcosθの近似値を与える。 第2図は本実施例の手順を示すフローチャートである。 ステップS1において入力ベクトル(a 、b )と精
度Mを入力し、ステップS2でブレーゼンハムのアルゴ
リズムに必要とされる各制御パラメータの初期化を行う
。そして、ステップS3において計算開始座標(Xa、
Yo)を(0,0)に設定し、進行距離gの2乗を0に
設定する。 次に、ステップS4からステップs6に進む。 ステップS4では、ブレーゼンハムのアルゴリズムに従
って、一連の離散的直線上の座標(xo、yo)。 (X r、Y +)、・−、(Xn、Yn)、=−を生
成する(第3図参照)。ステップS5では、ステップS
4で求めた座標値に基づいてCの計算を行う。この(”
の計算は一つ前の座標値を用いて行う。すなわち、(X
n。 Yn)の次の点(Xn+、、Yn++)を導出したとき
、(Xn−。 Yn+、)と(0,0)との距M 1 n +、の計算
は、(Xn、Yn)と(0,0)との距離I2nを用い
て行う。第4図(a )に示すようにX方向に進行した
場合は、Qn”1′・ρn′÷2Xn+1となり、第4
図(b )に示すようにY方向に進行した場合は、ln
+12・ln2+ 2 Yn〒1となる。また、第4図
(c )に示すように斜め方向に進行した場合は、(l
n+、2=Qn’+ 2 (Xn+ Yn+ 1 )と
なる。ステップS6では、ステップs5で求めたln
+ 、 2がMl+に最も近くなったかどうかを判定す
る。すなわち、(ln”15M2かどうかを判定し、1
2n”H”<M’であればステップS4に戻り、In+
、12M”になれば、i2n 4 、 !とQn2のい
ずれがM2に近いかを比べてその近いほうの2乗値を与
える座標点のX座標値をステップS7で出力する。 上記ステップS7で出力されたX座標値はMc。 Sθの近似値を与えるものであり、この値をLcとする
と、 Lc=Mcosθ−EC−(2) 但し、j Ec 1< 1 と表すことができる。そして、コサイン値はLc/Mに
より求めることができるか、コサイン値はIより小さい
ために、2進数計算で行う回転画像の座標値の計算には
そのまま用いることかできず上記Lcの値を用いる。こ
の場合、原画像を縦および横にM倍に拡大したものを回
転し、その結果得られた座標値をMて除すことにより回
転画像の座標値を得ることができる。例えば、第5図に
示すようにサイズがWXHの2値画像をθだけ左に回転
する場合を考えると、第6図に示すように、拡大した画
像の格子間隔はMとなり、X方向のn番目の点を回転し
て得られた点のX座標値(Xn)は、Xn=n XLc
/M −・・c3)となる。なお、上記回
転して得られた点のY座標値(Yn)は、第2図のアル
ゴリズムでX座標値と同時に得られるY座標値をサイン
値とし、これをLsとすると、 Yn=n xLs/M −(4)となる
。 また、回転画像のサイズをWrXHrとすると、上記(
2)式と(3)式とから、 Wr=W(Mcosθ−Ec)/M =Wcosθ−WEc/M Hr=H(Mcosθ−EC)/M =Hcosθ−HEc/M となる。従って、原画像のW、F(がM以下であれば、
回転画像のWr、Hrは1ドツトの誤差で求まることが
わかる。 また、回転画像の方向は平均的には約45°/M単位で
決定されることがわかる。従って、例えば、M=64=
2@とすると、約0.7′単位で回転することができる
。この角度は人間の目では区別できない程の角度であり
、実用に十分絶えうる精度である。 なお、Mを大きく
すればするほど精度はあがるが、あまり大きくすると計
算速度が遅くなるので、用途に応じて妥当な数値に設定
することが望ましい。なお、Mが64程度であれば、従
来例で述べた他の方法に比べてかなり速い計算速度を得
ることが確認されている。 【発明の効果] 以上より明らかなように、この発明のベクトルからのコ
サイン値算出方法は、算出精度を与えるための数値を設
定し、ベクトルで与えられた方向に基づきブレーゼンハ
ムのアルゴリズムに従って順次座標点を求めると共に、
求めた座標点の座標原点からの距離の二乗値を求め、そ
の二乗値を上記設定値の二乗値と比較して、その二乗値
が上記設定値の二乗値以上になったときに、その二乗値
とその座標点の一つ前に求めた座標点の座標原点からの
距離の二乗値のうちのいずれが上記設定値の二乗値に近
いかを求め、近いほうの二乗値を与える座標点の上記基
準座標軸に対応する座標値と上記設定値とから上記コサ
イン値を算出するようにしているので、入力データに基
づき四則計算によりコサイン値を算出することができ、
従来例の■、■のように複雑な計算をする場合に比べて
計算速度を速くすることができ、また、従来例の■のよ
うに大きなデータ領域を必要とせず、算出可能なコサイ
ン値がテーブルに載せられた特定の方向のらのに限られ
るということもないため、文字やアイコン等の比較的小
さなビットマツプ画像を用いたヒットマップノステム上
のアブリケーンヨンに有効であり、特にCAD、CAM
、CAIには非常に有効である。
現するためのシステム構成図である。 この第1図において、lは入力装置であり、この入力装
置1により、方向ベクトル(a 、b )と、計算精度
を与えるための数値M(以下、精度Mと呼ぶ)が入力さ
れる。また、2は、上記入力データに基づいて、第3図
に示すように、ブレーゼンハムのアルゴリズムに従って
、座標原点(0,0)から座標点(a 、b )の方向
に向かって、離散的な直線上を進行し、進行方向の離散
座標値(図の黒丸で示す点の座標値)を計算する装置で
あり、3は、進行距離(のの2乗、すなわち上記離散座
標値を与える座標点と座標原点との距離の2乗を計算す
る装置である。上記装置2は後述するように、上記装置
3によって計算され1ニI22かM2に最も近くなった
座標点のX座標値を出力装置4により出力する。このX
座標値はMcosθの近似値を与える。 第2図は本実施例の手順を示すフローチャートである。 ステップS1において入力ベクトル(a 、b )と精
度Mを入力し、ステップS2でブレーゼンハムのアルゴ
リズムに必要とされる各制御パラメータの初期化を行う
。そして、ステップS3において計算開始座標(Xa、
Yo)を(0,0)に設定し、進行距離gの2乗を0に
設定する。 次に、ステップS4からステップs6に進む。 ステップS4では、ブレーゼンハムのアルゴリズムに従
って、一連の離散的直線上の座標(xo、yo)。 (X r、Y +)、・−、(Xn、Yn)、=−を生
成する(第3図参照)。ステップS5では、ステップS
4で求めた座標値に基づいてCの計算を行う。この(”
の計算は一つ前の座標値を用いて行う。すなわち、(X
n。 Yn)の次の点(Xn+、、Yn++)を導出したとき
、(Xn−。 Yn+、)と(0,0)との距M 1 n +、の計算
は、(Xn、Yn)と(0,0)との距離I2nを用い
て行う。第4図(a )に示すようにX方向に進行した
場合は、Qn”1′・ρn′÷2Xn+1となり、第4
図(b )に示すようにY方向に進行した場合は、ln
+12・ln2+ 2 Yn〒1となる。また、第4図
(c )に示すように斜め方向に進行した場合は、(l
n+、2=Qn’+ 2 (Xn+ Yn+ 1 )と
なる。ステップS6では、ステップs5で求めたln
+ 、 2がMl+に最も近くなったかどうかを判定す
る。すなわち、(ln”15M2かどうかを判定し、1
2n”H”<M’であればステップS4に戻り、In+
、12M”になれば、i2n 4 、 !とQn2のい
ずれがM2に近いかを比べてその近いほうの2乗値を与
える座標点のX座標値をステップS7で出力する。 上記ステップS7で出力されたX座標値はMc。 Sθの近似値を与えるものであり、この値をLcとする
と、 Lc=Mcosθ−EC−(2) 但し、j Ec 1< 1 と表すことができる。そして、コサイン値はLc/Mに
より求めることができるか、コサイン値はIより小さい
ために、2進数計算で行う回転画像の座標値の計算には
そのまま用いることかできず上記Lcの値を用いる。こ
の場合、原画像を縦および横にM倍に拡大したものを回
転し、その結果得られた座標値をMて除すことにより回
転画像の座標値を得ることができる。例えば、第5図に
示すようにサイズがWXHの2値画像をθだけ左に回転
する場合を考えると、第6図に示すように、拡大した画
像の格子間隔はMとなり、X方向のn番目の点を回転し
て得られた点のX座標値(Xn)は、Xn=n XLc
/M −・・c3)となる。なお、上記回
転して得られた点のY座標値(Yn)は、第2図のアル
ゴリズムでX座標値と同時に得られるY座標値をサイン
値とし、これをLsとすると、 Yn=n xLs/M −(4)となる
。 また、回転画像のサイズをWrXHrとすると、上記(
2)式と(3)式とから、 Wr=W(Mcosθ−Ec)/M =Wcosθ−WEc/M Hr=H(Mcosθ−EC)/M =Hcosθ−HEc/M となる。従って、原画像のW、F(がM以下であれば、
回転画像のWr、Hrは1ドツトの誤差で求まることが
わかる。 また、回転画像の方向は平均的には約45°/M単位で
決定されることがわかる。従って、例えば、M=64=
2@とすると、約0.7′単位で回転することができる
。この角度は人間の目では区別できない程の角度であり
、実用に十分絶えうる精度である。 なお、Mを大きく
すればするほど精度はあがるが、あまり大きくすると計
算速度が遅くなるので、用途に応じて妥当な数値に設定
することが望ましい。なお、Mが64程度であれば、従
来例で述べた他の方法に比べてかなり速い計算速度を得
ることが確認されている。 【発明の効果] 以上より明らかなように、この発明のベクトルからのコ
サイン値算出方法は、算出精度を与えるための数値を設
定し、ベクトルで与えられた方向に基づきブレーゼンハ
ムのアルゴリズムに従って順次座標点を求めると共に、
求めた座標点の座標原点からの距離の二乗値を求め、そ
の二乗値を上記設定値の二乗値と比較して、その二乗値
が上記設定値の二乗値以上になったときに、その二乗値
とその座標点の一つ前に求めた座標点の座標原点からの
距離の二乗値のうちのいずれが上記設定値の二乗値に近
いかを求め、近いほうの二乗値を与える座標点の上記基
準座標軸に対応する座標値と上記設定値とから上記コサ
イン値を算出するようにしているので、入力データに基
づき四則計算によりコサイン値を算出することができ、
従来例の■、■のように複雑な計算をする場合に比べて
計算速度を速くすることができ、また、従来例の■のよ
うに大きなデータ領域を必要とせず、算出可能なコサイ
ン値がテーブルに載せられた特定の方向のらのに限られ
るということもないため、文字やアイコン等の比較的小
さなビットマツプ画像を用いたヒットマップノステム上
のアブリケーンヨンに有効であり、特にCAD、CAM
、CAIには非常に有効である。
第1図はこの発明の一実施例を実現するためのシステム
構成図、第2図は上記実施例の手順を示すフローチャー
ト、第3図は上記実施例における座標点の求め方を説明
する図、第4図は上記座標点と座標原点との距離の二乗
の求め方を説明する図、第5図および第6図は上記実施
例で求めたコサイン値を用いて画像回転した場合の誤差
を説明する図、第7図は従来例を説明する図である。
構成図、第2図は上記実施例の手順を示すフローチャー
ト、第3図は上記実施例における座標点の求め方を説明
する図、第4図は上記座標点と座標原点との距離の二乗
の求め方を説明する図、第5図および第6図は上記実施
例で求めたコサイン値を用いて画像回転した場合の誤差
を説明する図、第7図は従来例を説明する図である。
Claims (1)
- (1)画像表示装置において画像を回転表示するために
、ベクトルで与えられた方向の基準座標軸に対する角度
のコサイン値を算出する方法であって、 算出精度を与えるための数値を設定し、上記ベクトルで
与えられた方向に基づきブレーゼンハムのアルゴリズム
に従って順次座標点を求めると共に、求めた座標点の座
標原点からの距離の二乗値を求め、その二乗値を上記設
定値の二乗値と比較して、その二乗値が上記設定値の二
乗値以上になったときに、その二乗値とその座標点の一
つ前に求めた座標点の座標原点からの距離の二乗値のう
ちのいずれが上記設定値の二乗値に近いかを求め、近い
ほうの二乗値を与える座標点の上記基準座標軸に対応す
る座標値と上記設定値とから上記コサイン値を算出する
ようにしたことを特徴とするベクトルからのコサイン値
算出方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2193697A JPH0478973A (ja) | 1990-07-20 | 1990-07-20 | ベクトルからのコサイン値算出方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2193697A JPH0478973A (ja) | 1990-07-20 | 1990-07-20 | ベクトルからのコサイン値算出方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0478973A true JPH0478973A (ja) | 1992-03-12 |
Family
ID=16312279
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2193697A Pending JPH0478973A (ja) | 1990-07-20 | 1990-07-20 | ベクトルからのコサイン値算出方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0478973A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7532204B2 (en) * | 2004-09-01 | 2009-05-12 | Sharp Kabushiki Kaisha | Coordinate input system and coordinate input method |
-
1990
- 1990-07-20 JP JP2193697A patent/JPH0478973A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7532204B2 (en) * | 2004-09-01 | 2009-05-12 | Sharp Kabushiki Kaisha | Coordinate input system and coordinate input method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4667236A (en) | Television perspective effects system | |
| CN105913417B (zh) | 基于透视投影直线的几何约束位姿方法 | |
| CN106778347B (zh) | 一种基于三角函数的矢栅地理数据可逆脱密方法 | |
| US20250259353A1 (en) | Method and system for generating pedestrian thermodynamic diagram | |
| CN104424841A (zh) | 地图显示装置以及地图上的字符串显示方法 | |
| CN117806468A (zh) | 基于imu的光标控制方法及装置、存储介质、计算机设备 | |
| CN108921000A (zh) | 头部角度标注、预测模型训练、预测方法、设备和介质 | |
| CN116182839A (zh) | 一种飞行器姿态的确定方法、装置、电子设备及存储介质 | |
| JPH0478973A (ja) | ベクトルからのコサイン値算出方法 | |
| CN116932119B (zh) | 虚拟屏幕显示方法、装置、设备及计算机可读存储介质 | |
| CN116051929A (zh) | 一种基于三维模拟样本生成的仪表盘读数训练和识别方法 | |
| Shu et al. | On unified optical flow field | |
| JPH0785266A (ja) | 画像回転装置 | |
| CN112464696A (zh) | 图像处理方法、装置、设备及存储介质 | |
| CN117012295B (zh) | 一种二维气液界面曲线重构方法 | |
| JP2756128B2 (ja) | 表示システム | |
| JPH03296877A (ja) | 曲線描画装置 | |
| JPH03209499A (ja) | アウトライン・フォントの形成方法およびその描画装置 | |
| CN112230837A (zh) | 一种三维动态几何系统中视角变换方法 | |
| JPH04168581A (ja) | 超楕円の近似曲線生成方法 | |
| CN111179174B (zh) | 一种基于人脸识别点的图像拉伸方法和装置 | |
| JPS63140382A (ja) | 円類の多角形近似描画方法 | |
| JPH07134781A (ja) | 3次元対象物回転指示方法 | |
| CN120693634A (zh) | 信息处理装置、信息处理方法以及信息处理程序 | |
| JP3166875B2 (ja) | 図形処理装置の曲線部分入力に於ける円弧算出方法 |