2020-12-30に投稿

ゲームなどで円周上の座標を求める方法

ゲームなどでは円周上の座標を求めたい時などがあります。例えば自分の周りをぐるぐる回るバリアを作りたいときなどです。

この画像で言う黄色い円の座標をどうやって求めるかという話です。

sinとcos

sinとcosを使うだけです。これに角度を渡すだけです。簡単にいうと下記です。

  • X座標=cos(角度)
  • Y座標=sin(角度)

例えばJavaScriptのプログラミングになおすと下記です。

const x = Math.cos(angle)
const y = Math.sin(angle)

むちゃくちゃ簡単ですね!

角度はラジアン

ただ、angleは0~360の角度ではありません。ラジアン単位に変換する必要があります。これは数学で習いますし決まりきっているので簡単です。

const radianAngle = angle * Math.PI / 180

このradianAngleを先程のcos, sinに渡します。

長さを調整

cos, sinの答えは0~1で返ってきます。そのため、半径をかけてあげる必要があります。これで実際の座標が出せます。

const x = radius * Math.cos(radianAngle)
const y = radius * Math.sin(radianAngle)

その他関連

これの逆をやりたい時はタンジェントとかや逆三角関数とかがまた出てきます。プログラミングにはどれも同様の機能があるためそれを呼ぶだけなので簡単です。

ツイッターでシェア
みんなに共有、忘れないようにメモ

だら@Crieit開発者

Crieitの開発者です。 Webエンジニアです(在宅)。大体10年ちょい。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel, React, Flutter, Vue.js, Node, RoR 趣味:Elixir, Phoenix, Nuxt, Express, GCP, AWS等色々 PHPフレームワークちいたんの作者

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント