ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

アナログ時計の針の描画

ずっと、プログラミングでアナログ時計はどうやって描画するのかと思っていたのですが、答えに近づけました。

キーワードは極座標変換です。

…極座標変換って何?
私が教えて欲しいんですが…。
ソースがあったので、ちょっとだけ覚えました。

簡単に言うと(簡単にしか言えない)

直交座標…中心点からxがいくつで、yがいくつなのかによって、座標を決める方法

プログラミングでは通常、この座標の扱い方です。

極座標…中心点からの距離と、一点からの角度で座標を決める方法

ちなみに上記は二次元の場合です。

ゲームクリエーターは、こんなのを勉強しなければいけないので、詳しそうです。
Unityとかでも使うんでしょうかね。

さて、アナログ時計を描画する時に、どうやって針を描画しているのか?
x,yじゃどうにもなりません。

極座標変換を聞いた時に、この関連性が浮かび上がってきました。
極座標変換で角度を変えるのは、針が動くのと同じ事です。

極座標で角度を加算した後、それを直交座標に変換して描画すれば、立派なアナログ時計を作られるはずです。

しかし、私は変換方法が分からなかった為、実験する事は出来ませんでした。
だれかC#で書いてくれ…。

とにかく、これでアナログ時計の描画が実現できるはずです。
(実験はしていないけど)

アナログ時計のプログラムの開発者などは、この方法を使っているのでしょう。
しかし他に、もっと良い方法があるのかも知れません。

いや~、前からあったモヤモヤがすっきりしました。

tag:

コメント

この人は本当に1年生なのか・・・?w

理解し難い難しい話を淡々と書き綴っているサイバー少年さんの姿を想像したら、本当にベテランのプログラマーですねw

頑張ってください!

  • 2012/11/22(木) 22:23:05 |
  • URL |
  • AsaBon #-
  • [ 編集 ]

Re: AsaBon

いやいや、とんでもない。
私なんぞ、まだまだ見習いプログラマーですよ。

この極座標変換なんて、一部を聞いただけでして、
説明しろなんて言われても到底出来ません。
そもそも極座標って何?(笑)

まだまだ頑張ります!

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/177-508fe43e
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。