1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Blender の Geometory Nodes で複素関数 sin(z) を描く

Posted at

こんにちは|こんばんは。カエルのアイコンで活動しております @kyamaz :frog: です。

はじめに

本稿は、数学的な対象を Blender の Geometory Nodes を使って扱うエントリです。複素関数 $ \sin{z} $ を描いてみましょう。

Blender Geometry Nodes で描く

まず最初に、Scene Collection に Plane Mesh を追加します。[3D Viewport - Object Mode] にて「Add->Mesh->Plane」で追加し、[Outline - ViewLayer] にて名前を「complex_function」に変更しておきます。このオブジェントを選択した状態で [Geometory Node Editor - Modifier] の「+NEW」でモディファイアを追加し、この名前を [Properties] にて「complex_function」としておきます。

Grid を準備する

複素平面をXY軸にマッピングするためのGridを準備します。いくつかの定数を次のように定めて利用します。

  • SizeX:PlaneのX軸のサイズ
  • SizeY:PlaneのY軸のサイズ
  • VertecesXY:PlaneをGridにする分割数
  • Scale:倍率(1未満で指定するとZoomIn、1以上でZoomOut)

image.png

次の「Named Attribute」にそれぞれの定数の値を保存します。

  • gridsize_x :: Float <- SizeX
  • gridsize_y :: Float <- SizeY
  • scale :: Float <- Scale
  • uv_map :: Vector <- Gridより(本稿では利用しない)

パラメーターを初期化する

GridのなかのPointごとに処理されますが、そのPointに対応する複素数を上記の定数を使って求め、「Named Attribute」の z :: Vector にその値を保持します。

image.png

その前に、汎用的な定数 pie を「Named Attribute」に保持しておきます。(ただし、本稿では pie とも利用しません。汎用的な用例として記載してあります。)

sin(z) を計算する

$ z = x + iy \quad (x,y \in \mathbb{R}, z \in \mathbb{C}) $として、

$ \sin(z) = \sin(x) \cosh(y) + i \cos(x) \sinh(y) $ となります。

実部 $\Re(\sin(z)) = \sin(x) \cosh(y)$を z軸に割り当てると次のように設定します。

image.png

image.png

虚部 $\Im(\sin(z)) = \cos(x) \sinh(y)$を z軸に割り当てると次のように設定します。

image.png

image.png

以上で、Geometory Nodes で設定する全体像となります。

おわりに

複素関数をイメージしやすく 3D で表すのには、Blender は良いツールに感じます。

本稿の環境

本稿のために使用した環境は以下となります。

  • macOS: Sonoma 14.5 (chip: Apple M1)
  • Blender: 4.2.0
  • PYTHON INTERACTIVE CONSOLE 3.11.7 [Clang 15.0.0]

ご一読いただきまして有り難うございます。
(●)(●) Happy Hacking!
/"" __""\

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?