LoginSignup
8
0

【Unity】図形を描くプログラムを紹介してみる

Last updated at Posted at 2023-12-20

本日の最低気温は6°Cらしいです、寒すぎます
今暖かいところで書いているので、この記事を読んでくださっている方も暖かいところで読んでください
寒いところにいる人はストックいいねをして暖かいところに行ってから!


と、いうわけで暖かいところにいるクライアント新卒2年目のMです

@maphyからパスをもらい、Cocone Advent Calendar 2023の21日目の記事になります
昨日も明日も同期の記事なので、しっかりトラップして明日にパスしたいと思います

さっそくですが、ゲームをプレイしているとハート型や星型の技のエフェクトだったり出てきますよね
あれやりたいなと思ってやってみたので、すこし紹介します
少しでも参考になればいいなと思ってます!

紹介

※ 以降コード内に出てくるTWO_PIはMathf.PI * 2(2π)となります

星型

星、というよりダイヤ?な図形です

image1.gif

星型
float step = 0.1f;  // 角度のステップ幅
float scale = 1; // サイズ

for (float angle = 0; angle < TWO_PI; angle += step)
{
	float x = scale * Mathf.Pow(Mathf.Cos(angle), 3);
	float y = scale * Mathf.Pow(Mathf.Sin(angle), 3);

	Instantiate(object, new Vector2(x, y), Quaternion.identity);
}

クローバー型

image2.gif

クローバー型
float step = 0.1f;  // 角度のステップ幅
float scale = 1; // サイズ
int num = 3; // クローバーの数

for (float theta = 0; theta <= TWO_PI; theta += step)
{
	float r = 1 + Mathf.Cos(num * theta);
	float x = r * scale * Mathf.Cos(theta);
	float y = r * scale * Mathf.Sin(theta);
	Instantiate(object, new Vector2(x, y), Quaternion.identity);
}

三つ葉もいいけど、クローバーはやっぱり四つ葉ですよね
クローバーの数を変えるだけで簡単に葉の枚数も変えられます

image4.gif

ハート型

ちょっぴりぽっちゃりなハート型

image2.gif

ハート型
float step = 0.1f;  // 角度のステップ幅
int scale = 1; // サイズ

for (float theta = 0; theta <= TWO_PI; theta += step)
{
	float r = 1 - Mathf.Sin(theta);
	float x = r * Mathf.Cos(theta);
	float y = r * Mathf.Sin(theta);
	Instantiate(object, new Vector2(x*scale, y*scale), Quaternion.identity);
}

終わりに

ハート型、他にも色々書き方があって形も変えられたりできるので試してみてください
下記に今回参考にしたサイトのURLを貼っておくので、よければそちらも目を通してみてください!

明日は@takokurageの記事になります
タコなのかクラゲなのか、真実が明らかになるかもしれません
引き続きCocone Advent Calendar 2023をよろしくお願いいたします!

参考

naze数gaku
WolframMathworld

8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0