うしブログ

うしブログ

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

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

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

GeoGebraの基本操作覚書

Geogebraの基本操作に関する覚書です。随時更新します。

 

最近追加されたコマンド

ここでは、公式サイト(下記URL参照)で発表された新コマンドの概要を記す(新しい順)。

https://wiki.geogebra.org/en/Reference:Changelog_6.0

各コマンドの詳細は、公式サイトを参照されたい(各コマンドにリンクを付した)。

Version 6.0

CASLoaded[ ](Ver 6.0.564.0〜):CASの読み込みが未了ならfalseを返し、完了したらtrueを返す。CASの読み込みは、グラフィックスビューの読み込みよりも遅れるので、グラフィックスビューにてCASでの計算結果を参照している場合には、重宝するコマンドになるだろう。

なお、本コマンドの戻り値に、On Update スクリプトを記述すると、ggbOnInit 関数のように、起動時のスクリプト発火の手段として利用できる。

LambertW( <数値>, <0または-1> )(新たな定義済み関数、Ver 6.0.517.0〜):ランベルトのW関数

※ 2番目の引数として0を指定したとき、または2番目の引数を指定しなかったときは、主枝W0を計算する。-1を指定したときは、分枝W−1を計算する。

ReadText[ <テキスト> ](Ver 6.0.516.0〜)VoiceOver等のスクリーンリーダーに、指定のテキストを読み上げるよう指令を出す。 

SetDecoration[ <線分または角>, <整数1〜7> ](Ver 6.0.475.0〜)線分または角オブジェクトの装飾を編集する。

Assume[ <条件>, <数式> ](Ver 6.0.468.0〜)指定した条件のもとで数式を評価する。CAS専用コマンド。

例)Assume[ a > 0, Integral[ exp(-a x), 0, infinity ] ]は、1 / aを返す。

MAD[ <数値のリスト> ](Ver 6.0.466.0〜)データの平均偏差(Mean Absolute Deviation)を返す。

MAD[ <数値のリスト>, <度数のリスト> ]は、加重平均偏差(Weighted Mean Absolute Deviation)を返す。

IsTangent[ <直線>, <二次曲線> ](Ver 6.0.452.0〜):直線が二次曲線の接線であるか否かを、ブーリアンで返す。

InteriorAngles[ <多角形> ](Ver 6.0.433.0〜):多角形のすべての内角を角度オブジェクトとして返す。

※ { InteriorAngles[ <多角形> ] }とすれば、角度のリストとして返すことができる。

ExportImage[ <プロパティ>, <値>, <プロパティ>, <値>, ... ](Ver 6.0.426.0〜)現在のビューを画像として出力する。引数については、公式サイト参照。

Tangent[ <2次曲線>, <2次曲線> ] (新たな引数の追加、Ver 6.0.370.0〜):2つの二次曲線の共通の接線をすべて返す。

Version 5.0

Surface[ <曲線>, <角度>, <直線> ](新たな引数の追加、Ver 5.0.268.0〜)曲線を直線を軸に指定した角度だけ回転させてできる曲面を返す。

 

アップロード時の注意点

・オブジェクトの初期状態を確認。

・ユーザーに動かされたくないオブジェクトは固定するか、選択を不許可にする。

・アニメーションで動かしたいオブジェクトは固定しない。固定すると、オブジェクトが動かなくなる。

・アップロード時に「高度な設定」として、ズーム・再描画機能の有無など詳細なオプションを設定できるので、忘れずに設定する。

 

入力ボックス作成時の注意

入力ボックスにリンクするオブジェクトを、あらかじめ作成しておくと、スムーズに作成できる。

ボックスを移動するには、固定を解除してラベルをドラッグするか、右ドラッグする(右ドラッグは、固定されていても移動可能であり便利である)。

 

文字のショートカット

ctrl+A[B, G, D, T]:α[β, γ, δ, θ]

ctrl+E:ネイピア数e

ctrl+P:π

ctrl+O:°

ctrl+数字キー:指数入力

ctrl+<[>]:イコール付き不等号

 

入力のヘルプ

入力バーの右端にある三角形のボタンを押すと、入力できるコマンドのひな形を呼び出すことができる。

 

複数の点を同時に平行移動する

複数の点をいっぺんに選択した状態で、選択された1点をドラッグすると、他の選択された点もついてくる。

 

使えるコマンドたち

cbrt(数値):3乗根

CompleteSquare[xの2次関数]:平方完成された形で返す。※CASなら分数のまま返せます。

Relation[オブジェクト, オブジェクト]:2つのオブジェクトの関係をメッセージウインドウで返す。垂直、平行、面積や長さが同じかどうか、ある点が直線や楕円曲線上にあるかどうか。

SetCoords[自由なオブジェクトの名前, x座標にしたい数値, y座標にしたい数値]:自由なオブジェクトのx座標、y座標を再設定する。

※このコマンド自体は、いちど実行すると消えます。

BinomialCoefficient[数値a, 数値b]:二項係数aCbを返す。

Centroid[多角形]:多角形の重心を返す。

TaylorPolynomial[関数, 数値a, 数値n]:関数の、点x=aにおけるn次の級数展開を作成する。

FormulaText[オブジェクト, false(任意)]:オブジェクトの数式を、Texテキストとして生成する。「false」を入れた場合は、数式内に変数があるとき、変数に数値を代入せず、文字のまま表示できる。

※CASの計算結果をTexテキストとして出力したい場合、CASの計算結果の部分をグラフィックスビューへドラッグするか、CASのn行目の計算結果を出力したいとして、FormulaText[$n]を実行すればよい。CASの計算過程に変数が含まれている場合は、こうして生成したテキストの内容も、変数の値に応じて変化する。

Text[オブジェクト, false(任意)]:オブジェクトの数式を、テキストオブジェクトとして生成する。「false」を入れた場合は、数式内に変数があるとき、変数に数値を代入せず、文字のまま表示できる。

FractionText[数値]は、数値の(おおまかな)分数表示をテキストとして生成するものです。正確な値ではないので、分数表示が知りたい場合はCASを使ってください。

Name[オブジェクト]:オブジェクトの名前をテキストとして返す。名前があとあと変更されても自動更新されるので、テキスト内にオブジェクト名を記述したいときに便利。

Object["テキスト名" + 数値(任意)]:指定したテキストを名前にもつオブジェクトを返す。「+数値」を入力した場合は、当該数値までを含めた名前のオブジェクトを返す。

※使い方としては、点A_1〜A_5までがあったとして、5までの自然数であるスライダーnを動かすことで、Object["A_" + n]は、nの値にしたがって、A_1〜A_5を順に表示していく。それぞれの点の座標に規則性がなかったとしても、オブジェクトの名前を数字の順につけておけば、スライダーを動かして順に表示することができる。nを「○○の場合」と見立てて、画面をがらりと変えることなんかが可能になる(しかしながら、各オブジェクトの表示条件にn=数値を指定した方が早い)。

Text["文字列", 点]:指定した点上にテキストを配置する。テキストの左下付近に点がくる感じになります。点はオブジェクト名でも座標でもよい。

Locus[点Q, 点P]:(あるオブジェクトに従属している)点Pに従属している点Qの軌跡を返す。

Locusオブジェクトはただ表示するだけで、何も分析できません。

Corner[数値1〜4]:グラフィックスビューの隅の点を返す。1左下、2右下、3右上、4左上。

Corner[画像またはテキスト、数値1〜4]:画像またはテキストの隅の点を返す。1左下、2右下、3右上、4左上。

応用例:text1を作成したのち、Circle[Corner[text1,1],Corner[text1,2],Corner[text1,3]]と入力すると、テキストを○で囲めます。

CenterView[点]:指定した点がグラフィックスビューの中心になるように画面を移動する。

CommonDenominator[xの分数式,xの分数式]:2つのxの分数式にそれぞれ掛けることで、両方の分母が払えるようなxの文字式のうち最も次数の低いものを、xの関数の形で返す。 

UpdateConstruction[ ]:すべてのオブジェクトを再計算する。乱数系コマンドは値が更新される。数値オブジェクトのコンテキストメニュー中の「スライダー」の項目で「乱数」にチェックを入れた場合も、このコマンドを実行することで、当該数値は更新される。[ ]内に自然数を入れると、その回数だけ再計算する。このコマンドを実行しても、残像は消えない。残像を消すにはZoomIn[1]を実行することが有効である。

SetConditionToShowObject[オブジェクト, 条件]:指定したオブジェクトの表示条件を指定する。コンテキストメニューの「オブジェクトの表示の条件」を編集するコマンドである。

SetConditionToShowObject[オブジェクト, false]とすれば、そのオブジェクトは非表示となる。SetVisibleInViewコマンドによる表示/非表示の切り替えよりも、細かい条件を指定できる点が優れている。

 

2次曲線・多項式

Center[2次曲線]:2次曲線の中心を返す。

Focus[2次曲線]:2次曲線の焦点を返す。

Vertex[2次曲線]:2次曲線の頂点を返す。

Axes[2次曲線]:2次曲線の軸を返す。

Majoraxis[2次曲線]:2次曲線の長軸を返す。

Minoraxis[2次曲線]:2次曲線の短軸を返す。

Asymptote[双曲線]:双曲線の漸近線を返す。

Directrix[放物線]:放物線の準線を返す。

Parameter[放物線]:放物線の準線と焦点との距離を返す。

InflectionPoint[多項式]:多項式関数のすべての変曲点を、点として返す。

Root[多項式]:多項式のすべての根を、点として返す。

Expand[多項式]:多項式を展開する。

Polynomial[xの多項式関数]:xの多項式関数を展開する。

Polynomial[点のリスト]:グラフが指定した点を全て通るxの多項式関数を返す。

f:id:usiblog:20160811032232p:plain

Polynomial[ ]の実行例

Factor[多項式]:多項式有理数の範囲で因数分解する。

IFactor[多項式]:多項式を実数の範囲で因数分解する。

CFactor[式]:式を実部・虚部ともに有理数である複素数ガウス有理数)の範囲で因数分解する。※CASのみ

CIFactor[式]:式を複素数の範囲で因数分解する。※CASのみ

f:id:usiblog:20160811033706p:plain

f:id:usiblog:20160811033729p:plain

f:id:usiblog:20160811033738p:plain

f:id:usiblog:20160811033747p:plain

因数分解に関する各種コマンドの実行例

LeftSide[xとyの等式]:入力した等式を、定数項のみを右辺にまとめた形に整えた後、その左辺のみを「多変数関数」オブジェクトとして返す。

RightSide[xとyの等式]:入力した等式を、定数項のみを右辺にまとめた形に整えた後、その右辺のみを「多変数関数」オブジェクトとして返す。

LeftSide, RIghtSideコマンドは、CASで実行する場合に限り、等式のリストに対して実行することができる(以下の記述はRightSideコマンドにも当てはまる)。

LeftSide[{等式1, 等式2, ...}]は、リスト{等式1を定数項のみを右辺にまとめた形で整理した場合の左辺, 等式2を同様に整理した場合の左辺, ...}を返す。

LeftSide[{等式1, 等式2, ...}, 要素の番号]は、指定した等式のリストのうち、指定した番号に相当する等式(リストの最初が1番であり、順に2,3,...と番号付けがされている)についてのみ、整理した左辺を返す。

※たとえば、直線オブジェクトaに対して、LeftSide[a]>RightSide[a]は、直線の上側の領域を表す不等式オブジェクトである。これを用いて直線の上下の領域を定義することができる。ただし、このようにして作成した不等式は、再定義すると「他変数関数」オブジェクトに変わるバグや、当初x軸ともy軸とも平行でない直線に対して実行したのち、直線をx軸またはy軸に平行になるように動かすと、不等式オブジェクトが正しく表示されないバグが存在するので、注意が必要である。

 

グラフの接線系

Tangent[点, 2次曲線]:指定した点を通る2次曲線の接線

Tangent[直線, 2次曲線]:指定した直線に平行な、2次曲線の接線

Tangent[数値, 関数]:x=数値における関数のグラフの接線

Tangent[点, 関数]:x=(指定した点のx座標)における関数のグラフの接線

Tangent[点, 曲線]:指定した点で曲線に接する接線

 

数値をテキストとして表示する

テキスト入力画面で「オブジェクト」を選択すると、選択したオブジェクトがもつ値(線分なら長さ、平面図形なら面積)を、テキストに埋め込むことができる。

入力バーに、

"<任意の文字列>" + <オブジェクト名>

 を入力して実行しても、指定したオブジェクトが有する値を、テキストに埋め込める。

 

区分求積法における長方形の描画と面積の総和

上:Uppersum[xの関数, xの開始値, xの終了値, 長方形の数]

下:Lowersum[xの関数, xの開始値, xの終了値, 長方形の数]

※長方形の数を変数にして、スライダーで動かすことができる。

 

条件を満たした場合に任意のテキストを表示する

例:

If[poly1 ≥ 2, text1, text2]

三角形「poly1」の面積が2以上であれば、「text1」をグラフィックスビューに表示する。そうでないときは、「text2」を表示する。

※このif式自体が、新たなテキストオブジェクトとして定義されます。

使う時は、text1, text2を非表示にしておかないと、かぶってしまいます。

 

If[a<0, "aが負の値を取っています", "aは非負です"]

a<0ならば「aが負の値を取っています」というテキストを表示する。そうでない場合は「aは非負です」というテキストを表示する。

 

条件付き表示(IFを使わないやり方)

「表示/非表示のチェックボックス」ボタン:on/offでオブジェクトの表示/非表示を切り替えられるチェックボックスを設置する。

オブジェクトのプロパティ「上級」タブでオブジェクトの表示/非表示の条件を入力する:指定した条件に沿って表示/非表示を切り替える。

 

定義域を限定した関数のグラフ

If[-π ≤ x ≤ π,sin(x)]

xの関数sin(x)のグラフを、-π ≤ x ≤ πの範囲で描く。

f(x)=sin(x), -π ≤ x ≤ π

としても、同様の結果が得られる。「f(x)=」の記述を省略することもできる。表示領域を指定した閉区間に限定するコマンド f(x)=Function[sin(x),-π,π]も使える。

 

If[x  <  a, f(x), a≤ x ≤ b, g(x), h(x)]

x<aの区間でf(x)のグラフを表示し、a≤ x ≤ bでg(x)のグラフを表示し、それ以外の場合はh(x)のグラフを表示する。

 

積分

Lowersum[関数, 数値a, 数値b, 数値n]:区間[a,b]におけるn個の長方形による下方和;およびその図示

Uppersum[関数, 数値a, 数値b, 数値n]:区間[a,b]におけるn個の長方形による上方和;およびその図示

Integral[関数, 数値a, 数値b]:関数の区間[a,b]における定積分

※コマンド自体はひとつの数値オブジェクトとして記録されます。

Integral[関数f, 関数g, 数値a, 数値b]:関数の差f(x)-g(x)の、区間[a,b]における定積分

※コマンド自体はひとつの数値オブジェクトとして記録されます。

 

※グラフィックスビューでの定積分の値は、小数で丸められます。正確な値を計算したいときは、CASを使ってください。

 

Integral[関数]:不定積分

※こちらも正確な表示はCASを使ってください。

 

関数の命令を繰り返す

Iteration[関数, 初期値, 反復回数]:初期値からはじめて、関数の命令を指定回数実行した結果を返す。

 

おもな条件式

等しい: ==

等しくない: !=

※これらは、図形が一致しているかどうかを確かめることもできる。

大なり、小なり:>,  <,  >=,  <=

かつ:&&

または:||

否定:!

※必要に応じて、入力バー右側のαを押して記号を選択してください。

垂直、平行は、キーボードでは入力できません。

 

測定系コマンド

Distance[点, 点]:点と点との距離

※distanceは点と直線、平行線同士の距離の測定も可能。

Circumference[円または楕円]:円または楕円の周の長さ

Perimeter[多角形]:多角形の周の長さ

Radius[円]:円の半径

Area[点, 点, 点, ...]:面積

※線分や多角形オブジェクトなら、オブジェクト名に長さ・面積のデータが含まれています。テキスト入力画面で当該オブジェクトを参照したり、値のラベル表示をすると確認できます。なお円では数式が表示されます。

Volume[オブジェクト名]:体積

Length[関数(または媒介変数表示された曲線), 数値, 数値]:関数または曲線の、指定した閉区間における長さ

Length[関数(または媒介変数表示された曲線), 点, 点]:関数または曲線上の指定した2点間の長さ

Slope[直線]:直線の傾き、およびその傾きを表す直角三角形の図示

※図示される直角三角形の大きさは、プロパティから変更可能。

Angle[多角形]:多角形のすべての角度を得る(多角形が半時計回りに作成されていれば、内角を得、そうでなければ外角を得る。)

Max[区間]:区間の上限(Minは下限)を返す。

Max[数値のリスト]:リスト中最大(Minは最小)の数を返す。

Max[オブジェクトのリスト]:リスト中、そのオブジェクトに関連する値(線分であれば長さ、多角形であれば面積)が最大(Minは最小)であるオブジェクトの、当該値を返す。

Max[数値, 数値]:2つの数値のうち大きい方(Minは小さい方)を返す。3つ以上の数値の比較をする場合は、Max[数値のリスト]やMin[数値のリスト]を使用する。

Extremum[多項式]:多項式関数のすべての極値を、点として返す。

Extremum[関数, x開始値, x終了値]:関数の、指定した開区間における極値を、点として返す。

Entremum[ ]コマンドで返される点は複数である場合があります。{Extremum[ ]}と入力すれば、極値を表す点のリストを作成することができます。

Max[ ], Min[ ]コマンドは、特定の区間に対して正確な結果を返さない場合があります(一種のバグだと思われます)。そのため、区間を指定したグラフの最大値・最小値は、極値Extremum[ ]を用いて計算することが望ましいです。

 

整数問題系

Div[数値a, 数値b]:aをbで割った商

Mod[数値a, 数値b]:aをbで割った余り

Division[数値a, 数値b]:リスト{a÷bの商、a÷bの余り}を返す。

DivMod, Divisionは、多項式の割り算にも使用できる。

Divisors[整数]:整数の約数の個数

DivisorsList[整数]:整数のすべての約数のリストを返す。

DivisorsSum[整数]:整数の約数の総和

GCD[数値a, 数値b]:aとbの最大公約数

LCM[数値a, 数値b]:aとbの最小公倍数

FromBase["数を表すテキスト", 数値n]:n進数表記されたテキストを10進数に変換して、数値オブジェクトとして返す。nは2〜36に限る。

ToBase[整数, 数値n]:10進法で書かれた整数をn進法に変換して、テキストオブジェクトとして返す。仮にnが10だとしても、返されるのはテキストオブジェクトである。nは2〜36に限る。

IsPrime[数値]:数値が素数であればtrueを返し、素数でなければfalseを返す。数値に自然数以外の数を入れた場合、CASでは計算結果に「?」が表示される。数値が自然数以外の有理数である場合、その数の小数第一位を四捨五入した結果得られる整数に対して判定が行われる。

 

ベクトル系

AffineRatio[点, 点, 点]:同一直線上にある3点のアフィン比を返す。

※アフィン比AffineRatio[A, B, C]とは、C↑=A↑+λ(B↑−A↑)となるようなλの値をいう。

小文字のアルファベット=(座標) :ベクトルの生成

Vector[始点, 終点]:始点と終点を指定してベクトルを生成

Vector[点]:指定した点の位置ベクトルを生成

Length[ベクトル(または点)]:ベクトルの長さ(または点の位置ベクトルの長さ)

Angle[ベクトル, ベクトル]:ベクトル間の角度(0〜2π)

※ベクトルを1つだけ入力した場合は、そのベクトルとx軸との角度を返す。

Direction[直線]:直線の方向ベクトルを与える。

UnitVector[直線またはベクトル]:直線またはベクトルの方向ベクトルあり、かつ長さが1のベクトルを与える。

PerpendicularVector[直線またはベクトル]:直線またはベクトルの法線ベクトルを与える。

※コマンド名の先頭に「unit」をつけると、長さ1のベクトルに指定できる。

Line[点, ベクトル]:指定したベクトルを方向ベクトルに持ち、指定した点を通る直線を作成する。

Perpendicular[点, ベクトル]:指定したベクトルに垂直であり、かつ指定した点を通る直線を作成する。

Translate[ベクトル, 点]:指定したベクトルを、開始点が指定した点になるように平行移動する。生成されたベクトルは、もとのベクトルに依存するため、それ自身は動かせない。

 

媒介変数表示による曲線

Curve[式1, 式2, パラメーター, 数値a, 数値b]:指定したパラメーターを区間[a, b]の範囲で動かすことで、x座標が式1、y座標が式2である媒介変数表示の曲線を与える。

※これで定義された曲線(例:a)は、a(数値)と入力することで、曲線a上の点であって、パラメータが指定した数値であるような点を生成することができる。これとスライダーを用いて、曲線が描かれるプロセスを確認することが可能である。

Derivative[曲線, 数値(任意)]:微分を返す(数値を指定した場合は、n階微分

OsculatingCircle[点, 曲線]:指定した点における曲線の外接円

Tangent[点, 曲線]:与えられた点での曲線の接線

 

陰関数表示による曲線

f(x,y)=(xとyの多項式):多変数関数を定義する。

ImplicitCurve[ xとyの多項式(あるいはxとyの多変数関数)]:陰関数表示による曲線を作成する。

ImplicitCurve[5点からなるリスト]:5点を通る陰関数表示の曲線を返す。2次元グラフィックスビューにおいては、5点を通る2次曲線Conic[点,点,点,点,点]と実質的に同じオブジェクトを返す。

ImplicitDerivative[ xとyの多項式(あるいはxとyの多変数関数)]:陰関数の導関数(dy/dx)を返す。

 

オリジナルツール

あるオブジェクトに依存したオブジェクトを自動的に作成することができる。

ツールを登録しておくと、依存されるオブジェクトを作成することで、それに依存する指定したオブジェクトを自動生成できる。

作成したツールは、「ツールの管理」メニューから、.ggtファイルとしてエクスポートできる。.ggtファイルを開くことで、現在のワークシートにツールをインポートできる。また、ツールがインポートされている状態で「設定を保存」しておけば、GeoGebra起動時のデフォルトのワークシートが、そのツールがインポートされた状態になる。 

一定の規則に従ってリストを作成

Sequence[ <変数を含むオブジェクトの定義式>, <変数>, <開始値>, <終了値>]:一定の規則に従って、リストオブジェクトを作成する。

例:Sequence[(i,0),i,-2,10]:点(-2,0), (-1,0), ..., (9,0), (10,0)を作成する。

※こうして作った点列の1つ1つには、オブジェクトとしての命名はありません。もし、命名したいときは、polygon[リスト名]で多角形を作成して、vertex[多角形名]で、すべての点に点オブジェクトを割り当てることが出来ます(多角形を非表示にすれば点のみを表示できます)。

例:Sequence[Polygon[( i/n, f(i/n) ), (i/n, 0), )( (i+1)/n, 0 ), ( (i+1)/n, f(i/n) )], i, 0, n-1]:区分求積法の、区間[0,1]におけるn個の長方形(下方)。

例:多角形の全ての対角線を作成する

  

特定の図形の外部を示すオブジェクトの作成

→図形の外側をなぞる点列を作成して、多角形を作成する。

(図形の外側をなぞるように点のlistを細かくとって、必要に応じて複数のlistをUnion[ <リスト> ]で合わせて、Polygon[ <リスト> ]で多角形をつくればよい。)

 

点のリストを結ぶ線分

Polyline[ <点のリスト> ] :点のリストを順に結ぶ。

格子点

 Sequence[Sequence[(a, b), a, 0, 5], b, 0, 6]:x座標0〜5, y座標0〜6の格子点を作成

 

変数に特定の値を代入する

SetValue[数値オブジェクト名, 数値]

例:tが現在t=3で定義されているとして、SetValue[t, 10]は、tをt=10に変更する。

 

オブジェクトの表示/非表示

※通常オブジェクトの表示/非表示には、数式ビューから行いますが、下記のコマンドで命令することもできます。

SetVisibleInView[ オブジェクト, 1 or 2, true or false ]:指定したオブジェクトを、グラフックスビュー1 or 2において、表示(true) or 非表示(false)にする。

※このコマンドで非表示にしたオブジェクトは、数式ビューで表示/非表示を切り替えたとしても、表示されません。再表示するためには、このコマンドでtrueを命令しなければなりません。

 

リストに対する操作

Element[リスト名, 数値]:指定したリストの指定番目の要素を返す。

例:list1が{2,4,6,うし}で定義されていた場合、Element[list1, 2]は数値オブジェクト4を返し、Element[list1, 4]はテキストオブジェクト"うし"を返す。

 

Append[ <リスト>, <オブジェクト> ]:リストの末尾にオブジェクトを追加したリストを返す。

Append[ <オブジェクト>, <リスト> ]:リストの先頭にオブジェクトを追加したリストを返す。

Appendコマンドの戻り値は、引数に従属する。引数に従属しないリストを作成したい場合は、CopyFreeObjectコマンドを用いれば良い。

 

First[ <リスト> ]:リストの最初の要素を唯一の要素にもつ、新たなリストを返す。

※リストの最初の要素自体を得たいときは、Element[ <リスト>, 1]を用いる。

例:First[ {1, 2, 3, 4, 5} ]は、リスト{1}を返す。Element[ {1, 2, 3, 4, 5}, 1 ]は、数値オブジェクト1を返す。

First[ <リスト>, <要素の数n> ]:リストの要素のうち、最初からn番目までを要素にもつ、新たなリストを返す。

例:First[ {1, 2, 3, 4, 5}, 3]は、リスト{1,2,3}を返す。

 

Flatten[ <リスト> ]:リストの入れ子を取っ払う。

例:Flatten[ { {1,2,3}, {4,5,6}, {7,8,9} } ]は、リスト{1,2,3,4,5,6,7,8,9}を返す。

例:Sequence[Sequence[(s, t), s, 0, 3], t, 0, 2]は、格子点のリスト{ {(0, 0), (1, 0), (2, 0), (3, 0)}, {(0, 1), (1, 1), (2, 1), (3, 1)}, {(0, 2), (1, 2), (2, 2), (3, 2)} }を返す(このリストをlist1と呼ぶことにする)。しかし、このままでは、Elementコマンドを用いても、1つの格子点のみを参照することはできない。たとえば、Element[list1, 1]は、{(0, 0), (1, 0), (2, 0), (3, 0)}という4つの点のリストを返す。そこで、list2 = Flatten[list1]を新たに作れば、Elementコマンドで1つの格子点を参照できる。例えば、Element[list2, 1]は、点(0,0)を返す。

 

IndexOf[ <オブジェクト>, <リスト> ]:指定したオブジェクトの値が、リストのn番目の要素の値と、初めて一致するとき(すなわち、リストのn-1番目までのどの要素の値とも一致せず、かつ、n番目の要素の値と一致するとき)、数値nを返す。指定したオブジェクトの値が、リストのどの要素の値とも一致しない場合には、「未定義」を返す。

例:IndexOf[ 7, {1, 7, 2, 4, 5, 6, 7} ]は、数値2を返す。なぜならば、リストの中で7が最初に出てくるのが、リストの2番目だからである。

※一致・不一致の判定は、値ベースで行い、型は問わない。例えば、a=1, b=7, c=2, d=4, e=5, f=6, g=7として、list1 = {a,b,c,d,e,f,g}とする。このとき、IndexOf[ 7, list1 ]、IndexOf[ b, list1 ]は、ともに数値2を返す。

IndexOf[ <オブジェクト>, <リスト>, <検索開始位置k> ]:指定したオブジェクトの値と、リストの要素との値の一致・不一致を、リストのk番目の要素から最後まで調べていき、n番目で初めて一致したとき(すなわち、リストのk番目〜n-1番目までのどの要素の値とも一致せず、かつ、n番目の要素の値と一致するとき)、数値nを返す。指定したオブジェクトの値が、リストのk番目以降のどの要素の値とも一致しない場合には、「未定義」を返す。

例:IndexOf[ 0, {1, 0, 2, 4, 5, 6, 0}, 3 ]は、数値7を返す。なぜならば、リストの3番目以降において、0が初めてリストに登場するのが、リストの7番目だからである。

 

Insert[ <オブジェクト>, <リスト>, <位置k> ]:リストのk番目に指定したオブジェクトを挿入した、新たなリストを返す。

例:Insert[ 9, {1,2,3,4,5,6}, 3 ]の値は、{1,2,9,3,4,5,6}となる。

※戻り値は引数に従属する。引数に従属しないリストを作成したい場合は、CopyFreeObjectコマンドを用いれば良い。例えば、a=9のとき、オブジェクト newList = Insert[ a, {1,2,3,4,5,6}, 3 ]の値は、{1,2,9,3,4,5,6}となる。しかし、a=8に変化させると、newListの値も、{1,2,8,3,4,5,6}に変化する。これに対して、a=9の状態で、newList = CopyFreeObject[ Insert[ a, {1,2,3,4,5,6}, 3 ] ]として作成すれば、newListの値は、その後aがどのように変化したとしても、{1,2,9,3,4,5,6}のまま変化しない。

※kを負の整数にした場合には、挿入位置は、リストの右からk番目の位置となる。例えば、Insert[ 9, {1,2,3,4,5,6}, -3 ]の値は、{1,2,3,4,9,5,6}となる。

Insert[ <リストa>, <リストb>, <位置k> ]:リストbのk番目の位置に、リストaの要素を挿入した、新たなリストを返す。

例:Insert[ {88,99}, {1,2,3,4,5,6}, 3 ]の値は、{1,2,88,99,3,4,5,6}となる。

※{ 1, 2, {88,99}, 3, 4, 5, 6}とならない点に注意。Insertコマンドの1番目の引数がリストである場合と、そうでない場合とでは、挙動に違いがあるということである。

なお、Insert[ { {66,77}, {88,99} }, {1,2,3,4,5,6}, 3 ]の値は、{1, 2, {66,77}, {88,99}, 3, 4, 5, 6}となる。この場合には、1番目の引数がリストである場合として処理されるということである。

 

現在日時を表すリストオブジェクトを生成する

Gettime[ ]:このコマンドを、2016年3月12日(土)10時26分19.347秒に実行した場合、リストオブジェクト{347, 19, 26, 10, 12, 3, 2016, "3月", "土曜", 7}を返す。最後の7は、曜日を表す数字を返す。日曜日=1, 月曜日=2, ..., 土曜日=7。

※このコマンドは、実行時に1回だけリストを生成しておしまいです。更新はされません。Gettime[ ]を複数回実行すると、その回数だけリストオブジェクトが増えていきます("特定の名前"=GetTime[ ] と書けば、リスト名を指定でき、同じ名前で生成すれば上書きされます。これによってリストの複数生成の問題は回避可能です)。

リアルタイムに時刻を表示する例は、下記の記事を参照してください。 この記事では、アニメーションの開始/停止を操作するStartAnimation[オブジェクト, 条件(任意)]コマンドにも触れています。

 

オブジェクトを連動させて移動する

オブジェクトAもオブジェクトBも動かせて、一方を動かすと、他方も一定の規則に基づいて連動する、という機能をつけたい場合。On Updateスクリプトを活用しましょう。下記記事参照。

 

任意の点に吸い付かせる

下記記事参照。

 

多角形の辺・対角線を表示する

下記記事参照。

 

真偽値について

true, またはfalseと定義されるオブジェクトは、グラフィックスビューではチェックボックスとして表示されます。

f:id:usiblog:20160603192739p:plain

使い方の例

アニメーションの停止、再生を操作する(官長壽(Kuan Chang-Sou), Area_Parallelogram-1参照)

f:id:usiblog:20160603194013p:plain

f:id:usiblog:20160603202938p:plain

このように設定すれば、上記の点Aを、真偽値aがtrue(チェックボックスにチェックが入った状態)なら動かし、falseなら止めることができます。

速さの設定も可能です。例: 2*aとすれば、速さを2倍速にできます。

 

オブジェクトの見出しを変更する

下記記事参照。 


オブジェクトを指定したベクトルに従って平行移動する

Translate[オブジェクト, ベクトル]

例:Translate[poly1, a]:a=(1,2)として、poly1をx軸方向に1、y軸方向に2平行移動する。

 

線分の内分点・外分点を作成する

下記記事参照。

 

統計

Classes[ <数値のリストs>, <開始値a>, <階級の幅b> ]:リスト{a, a+b, a+2b, ..., k}を返す。ただし、a > Max[ s ]とする(さもなくば、戻り値は「未定義」となる)。また、b>0とする(さもなくば、GeoGebraがクラッシュする)。kは、Max[ s ] <= a+n*b (ただしnは自然数)を満たす、最小のa+n*bである。

例:Classes[ {0.1, 0.2, 1.3, 1.4, 1.5, 2.6, 3.7, 3.8}, 0, 1 ]は、リスト{0, 1, 2, 3, 4}を返す。

Classes[ <データのリストs>, <階級の数n> ]:n+1個の等差数列のリスト{m, m+k, m+2k, ..., M}を返す。ただし、M = Max[ s ], m = Min[ s ]とする。Classes[s, n]と、Sequence[Min[ s ] + i*(Max[ s ] - Min[ s ]) / n, i, 0, n]は、同値である。

例:Classes[ {1, 1.2, 2.3, 2.4, 5}, 4 ]は、リスト{1, 2, 3, 4, 5}を返す。

Classesコマンドの用途としては、階級ごとの度数を数えるFrequencyコマンド・FrequencyTableコマンドや、ヒストグラムを作成するHistogramコマンドにおける、引数( <List of Class Boundaries> )として使うことが考えられよう。