うしブログ

うしブログ

趣味で運営する、GeoGebraの専門ブログ。

(作業メモ)StartPoint要検証(2行の場合;テキスト変更時未定義問題)

(要修復)ToggleButton・RollPolygonWithoutSlipping・貯金時計・直感力トレーニング

GeoGebraで回転体(に見えるモノ)を作る方法

(2022年9月3日追記)

Surface( <オブジェクト>, <角度>, <軸>)

という構文によって、回転体(厳密には回転体の表面を表す曲面)を描画することが可能となりました。例えば

Surface(poly1,2 π,z軸)

のように使います。

 

(以下、2017年2月8日当時の記事です。)

 

GeoGebraで回転体を作る方法は、私が現在知っている限りでは存在しません

しかし、回転体に見えるオブジェクトを作る方法はあります。

ここでは、Poly1Polygon[(1, 0, 0), (2, 0, 0), (2, 0, 1), (1, 0, 1)]をz軸を中心に回転してできる立体に見えるオブジェクトを作成する方法を紹介します。

1:Rotateコマンドと残像を用いる方法

f:id:usiblog:20170208231443p:plain

f:id:usiblog:20170208232405p:plainRotateコマンドを用いた回転体の作成.ggb

作成方法

・数値オブジェクトuを作成する。uは、最小値0、最大値2π、増分0.01、アニメーションの設定「増加(1回)」とする。

Rotate[poly1, u, z軸]を作成し、プロパティから「残像表示」チェックボックスをオンにする。

・uのアニメーションを開始する。

この方法の特徴

・比較的簡単に作成できる。

・正体は回転体ではなく、poly1をz軸まわりに回転させた図形を、ドミノのように大量に並べているだけ。そのため、見た目はあまり良くない。

・あくまで残像なので、ズームしたりビューを平行移動したりすると、描画内容が消去されてしまう。

2:Surfaceコマンドを用いる方法

f:id:usiblog:20170208231518p:plain

f:id:usiblog:20170208232405p:plain Surfaceコマンドを用いた回転体の作成.ggb

作成方法

Surface[If[0 ≤ p  <  1, p + 1, 1 ≤ p  <  2, 2, 2 ≤ p  <  3, 4 - p, 3 ≤ p ≤ 4, 1] cos(q), If[0 ≤ p  <  1, p + 1, 1 ≤ p  <  2, 2, 2 ≤ p  <  3, 4 - p, 3 ≤ p ≤ 4, 1] sin(q), If[0 ≤ p  <  1, 0, 1 ≤ p  <  2, p - 1, 2 ≤ p  <  3, 1, 3 ≤ p ≤ 4, 4 - p], p, 0, 4, q, 0, 2 π ]を作成する。

Surfaceコマンドの使い方の詳細については、後日別稿を書く予定です。

この方法の特徴

・作成方法が煩雑。

・曲面としてなめらかに描画されるため、見た目は綺麗。

・正体は回転体ではなく、あくまで曲面。中身は空っぽであり、Volumeコマンドで体積を求めることもできない。Surfaceコマンドのパラメーターを3つに増やしたようなコマンドがあれば、正真正銘の回転体を作成することができるが、そのようなコマンドは、GeoGebra 5.0には実装されていない。

追記:Sequenceコマンドを用いる方法

フォロワーの方に教えていただいた方法です。

f:id:usiblog:20170209003526p:plain

f:id:usiblog:20170208232405p:plain Sequenceコマンドを用いた回転体の作成.ggb

作成方法

Sequence[Rotate[poly1, (2q)°, z軸], q, 0, 180]を作成する。

この方法の特徴

・比較的簡単に作成できる。

・上記の「Rotateコマンドと残像を用いる方法」と同様に、poly1をz軸まわりに回転させた図形を、ドミノのように大量に並べている。

・残像ではないので、ズームやビューの平行移動をしても描画が消えない。残像よりも描画の負荷が大きい。