数学

菱形十二面体 その12

投稿日:2020年8月16日 更新日:

これまでの記事


今回は、Mathematicaで領域をプロットする機能を使って菱形十二面体に関係する話をしよう。

Mathematicaには、不等号で表される領域をプロットするための関数が用意されている。

2次元の場合はRegionPlot、3次元の場合はRegionPlot3Dという関数である。

今回は、RegionPlot3Dの方を使う。

使い方は、Mathematica公式のページが詳しいのでそちらを見るのが早いが、基本的には

RegionPlot3D[(領域を表す不等式), {x, xの最小値, xの最大値}, {y, yの最小値, yの最大値}, {z, zの最小値, zの最大値}]

とすれば良い。


さて、唐突だが、立方体の全ての辺をカットすることを考えたい。

この操作は、RegionPlot3Dを使えば簡単にできる。

まず、立方体を用意する。

そのためにはRegionPlot3Dにおいて、x, y, zの最小値と最大値をそれぞれ同じにすれば良い。

今回は最小値を-1、最大値を1とした。

次に、辺をカットするのだが、例えば+x, +y方向の辺をカットするには、x+y≦a (aは定数)とすれば良い。

辺は全部で12個あるので、x-y≦a, y+z≦a, …と順に条件を追加すれば良い。

今回はより簡単に記述するためにx+y, x-y, y+z, y-z, x+z, x-zのそれぞれの絶対値が定数以下になるという条件を付け加えた。

最終的に、描画のための関数は次のようになった。

RegionPlot3D[Abs[x + y] <= a && Abs[x - y] <= a && Abs[y + z] <= a && Abs[y - z] <= a && Abs[x + z] <= a && Abs[x - z] <= a, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Mesh -> None, PlotPoints -> 100]

ここでは、描画する点の数を増やして滑らかに描けるようにした。


aが2以上のときは立方体のままなので、この関数を使って、aの値を2から少しずつ小さくしていく。

上はそれぞれa=1.9、a=1.8のときである。

さらに小さくしていくと、a=1.3あたりでは切頂八面体のようになり(正確には違う)、

a=1でついに菱形十二面体が現れる。

それ以降は菱形十二面体の形を保ったまま、小さくなっていく。

下はa=0.5のときである。


今回の内容をgifアニメーションにしたのでぜひ見てもらいたい。

-数学
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

菱形十二面体 その9

これまでの記事 前回、菱形十二面体による空間充填が可能なことについて書いた。 今回はこれをもう少し掘り下げてみる。 そのために、菱形十二面体について話をする前に、いったん平面充填についての話をしよう。 …

菱形十二面体 その3

前々回、前回に引き続き、今回も菱形十二面体の話をしよう。 前回、菱形十二面体の内部には立方体が隠れていると書いた。 今回は、立方体以外の部分に注目したい。 下の図のように、立方体以外の部分は、6個のピ …

菱形十二面体 その10

これまでの記事 今回は、菱形十二面体の対称性に注目してみよう。 この菱形十二面体を、対称性の高い方向から見てみるとどうなるだろうか。 まず、菱形十二面体には、菱形の鋭角が4枚集まっている頂点と、菱形の …

準正多面体?半正多面体?どちらが正しい?

正多面体の1種類の正多角形で出来ているという制限を緩くすることで、アルキメデスの立体と呼ばれる13種類の多面体が得られる。 これらは、「半正多面体」と呼ばれることもあるのだが、一昔前の本や文献を見ると …

正多面体が5つしかない理由・オイラーの多面体定理を用いた証明

前回、1つの頂点に集まる面の種類と数を考えることで、正多面体が5種類しかないということを証明した。 今回は、別の方法で同じことを証明しようと思う。 そのために、次の定理を用いる。 オイラーの多面体定理 …