カレンダー

10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

カテゴリー

プロフィール

drednote(Mr.Ty)

Author:drednote(Mr.Ty)
既にいい年しているにも関わらずエロゲをプレイしているヤバイおっさんです。きっと還暦になってもプレイしてそうな気がする。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

この人とブロともになる

主にエロゲのプレイ日記。他レビューっぽい事とか色々
エロゲプレイ記
  当サイト内記事にはゲームのネタバレが含まれる場合があります。
  ネタバレをみたくない方は、当サイトの閲覧をご遠慮願いますようお願い致します。
  また、当サイトの記事自体は全年齢対象ですが、
  扱っている評価物は基本的に18歳未満プレイ禁止の物が殆どですのでご注意願います。
[------]
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--------(--) --:-- スポンサー広告 | 編集 |
[20091002]
さて、えらく時間があいてしまいました。
言い訳をすると、仕事が単純に忙しかったんですw
更に言うなら、その後私が実装したよりももっと単純でもっと良い方法が(ぐぐったら)わかったというのもあります。

とりあえず回転の話の続きです。
前回で頂点座標は回転させましたが、そこからどうやって描画するかをやっていません。
描画する為にはドット単位の座標に変換する必要があるんですが、とりあえずその為に描画域を求める必要があります。
私が実装した時は、前提条件として
  1. 矩形を描画する(必ず4頂点であり、且つ平行四辺形等のように歪んでいない)
  2. 回転拡大縮小フリップはしている可能性がある
という条件がありましたので、その条件で考えた物です。
その条件でスキャンラインを求めるとすると、
 1.頂点から上限/下限を求めてY座標の最大/最小を求める
 2.Y座標について1ラインずつ見て行き、そのラインにおけるXの範囲を求める

の2段階に分かれると思います。
実際にはこの前に矩形の4つの角度チェックとか入れたほうが安全なんですが、とりあえず省いてます。
四角のままで回転させる場合は、矩形を前提とした方が楽ですし、そういった前提が出来る場合があります。
矩形を前提に出来ない場合は素直に三角分割した方が良いでしょう。
下記は矩形を前提とした方法で記述します。
で、上記の内少しだけ問題になるのは多分2番なわけですが、これは線の公式を使えば簡単に求まります。
y=(y2-y1)/(x2-x1)*(x-x1)+y1
上記の式を適当に変形させて使ってください。
で、描画域が求まったら後はその描画域の範囲内についてforループをまわし、その座標が元画像ではどの座標に相当するのかを求め、その座標の色を描画します。
一番問題になるのがこの、回転結果後の座標から元画像の座標を求める部分なわけですが、とりあえず考え方を書いてみます。
基本的には2次元座標上の点から線分への垂線を求める事で、今見ている点が辺のどの位置にあたるのかを求める事が出来ます。
ですので、矩形を前提とするならば上辺と左辺、夫々の垂線との接触座標を求め、その座標がその辺のどの位置なのか、から元画像のX,Yを求める事が出来ます。
実際には三角分割を行えば実はもっと簡単にもとまる事が後からわかったのですが、それは後の祭りw
とりあえず三角分割する場合は、三角形の各頂点が元画像の座標のどの辺りに当たるのかを覚えておいてから、三角形の一辺がXのラインと水平になるように分割し、後は現在のスキャンラインが三角形のどの位置にあるかから比率で元画像の座標を求める事が出来ます。
多分こっちの方がずっと簡単だとは思いますw
スポンサーサイト


管理者にだけ表示を許可する
Top
http://drednote.blog92.fc2.com/tb.php/148-42ce9c66
HOME
copyright © 2005 drednote(Mr.Ty) all rights reserved.

Template By innerlife02

RSS1.0 ,
RSSフィード

応援バナー

検索フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。