うしブログ

うしブログ

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

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

Roots[ <関数>, <xの開始値>, <xの終了値> ]の挙動について

課題 数値オブジェクトnのスライダーを、最小値1、最大値200、増分1で作成する。 関数fを、以下のように定義する。 f(x) = sin(x) cos(n x) 区間0<=x<=πにおける、fのグラフと、x軸との交点を、漏れなくすべて取得する方法を考えよう。 Rootsコマンドの挙動 …

オリジナルゲーム「switch」

多角形の辺に沿って点を動かす、5つの方法

課題 下図のように、任意の多角形オブジェクト(poly1)の辺に沿って、点Pを動かしたい。実現方法を考えよう。 以下では、①〜⑤の、5つの方法を紹介する。 後述するが、①②の方法では、poly1が正多角形でない場合(すなわち、辺の長さが異なる場合)には、Pを…

アステロイドからカージオイドへ

違いの分かる奴になろう

RotateTextの挙動を観察する

角丸ボタンの作り方

通常のボタンでは、枠線の色を変更できない。 これに対して、テキストとして作成し、LaTeX構文 \ovalbox{テキスト} を用いれば、文字色と枠線色を連動させることができる。

テキストやグラフを「徐々に」表示させる

text and graph – GeoGebra 前提オブジェクト f = sin(x) text1 = "絶えず人いこふ夏野の石一つ" 青いグラフ SlowPlot[ f ] と入力すると、数値オブジェクトaとともに、 g = If[x < x(Corner[2] - Corner[1]) a + x(Corner[1]), f] が作成される。gが、青い…

マウスイベント、タッチイベントの発生位置(座標)を取得するJavaScript

how to refer mouse/tap coordinates – GeoGebra function ggbOnInit() { //グラフィックスビュー1を表示しているcanvasを取得 var canvas = document.getElementsByTagName('canvas')[0]; //リッスンしたくないイベントはコメントアウト canvas.addEventLis…

マウス/指位置の真下の描画をワイプ表示する

wipe – GeoGebra タッチデバイスで、指の真下の描画を確認できるよう、ワイプ表示する実験です。 グローバルJavaScript function ggbOnInit() { insertCanvasOnlyCanvasTag(); //usicanvasのイベントリスナを設定 var usicanvas = document.getElementsByCla…

(覚書)グラフィックスビュー1をcanvasとして分析する(PCデバイス前提)

(随時更新します) バージョン 実験アプレット 各種モードの区別 グラフィックスビュー1を表すcanvasエレメントを取得する 埋め込み時の主な階層 (参考)アプレットが格納されているiframeを取得する ワークシート画面の主な階層 編集画面の主な階層 ウイ…

正三角形を用いたフラクタル表現

課題 上図のように、正三角形ABCを作成する。名前をpoly1とする。 (1)下図のように、点Aを拡大の中心点として、poly1を0.8倍した多角形(poly2)を作成せよ。 (2)poly2の、点Bに対応する頂点を、B2とする。 下図のように、B2を拡大の中心点として、pol…

a Sky Full of DelaunayTriangulation

art using Delaunay triangulation – GeoGebra

直線を画面で切り取って、線分を返すオリジナルツール「ToSeg」

ToSeg tool - GeoGebra 使用例:2点からの距離が等しい点の軌跡 2点から等距離である点の軌跡 – GeoGebra PerpendicularBisector[ <点>, <点> ]は(線分ではなく)直線であるから、この直線上の点をとってアニメーションさせても、等速では動かない(直線の…

nPr(順列)、nCr(組合せ)のパターンを返すオリジナルツール

ggtファイルのダウンロード nPrList tool - GeoGebra nCrList tool - GeoGebra 構文 nPrList[ <数値n>, <数値r>, <index> ] は、自然数1〜nの中から、r個を取り出して、順番を考慮して並べる場合のパターンを返す。各パターンは、index(1〜nPrの範囲内で指定してく</index>…

nPr(順列)、nCr(組合せ)を視覚化する

visualizing nPr and nCr – GeoGebra

blue

「n以下の素数の個数」計算機

計算結果の意味は、 { <n以下の最大の素数>, <n以下の素数の個数> } です。 途中で計算を止めた場合は、 { <現時点で計算できた最大の素数>, <その素数以下の素数の個数> } です。 特徴 ・動作が軽い。少しずつ計算を進めていくので、nに膨大な数を入れたからといって、それだけではクラッシュしな</n以下の素数の個数></n以下の最大の素数>…

nPr

nPr – GeoGebra

「要素を戻さずに取り出していく」をGeoGebraで表現する

課題 list1 = {1,2,3,4,5,6,7,8,9,10} list2 = {3,3,6,2,1} とする。list1から要素を取り出していく。一度取り出したものは戻さない。list2は、取り出す要素のインデックスを指示している。ただし、当該インデックスは、list1におけるインデックスではなく、…

「ベクトルのリスト」から行列を返すオリジナルツール

課題 ベクトルのリストvectorList の各要素を列ベクトルと考えて、行列を得たい。たとえば、ベクトル u = (1,2) v = (3,4) に対して、 vectorList = {u, v} を作成したとする。vectorListを引数として、行列 を得られるような、オリジナルツールを作成する方…

(覚書)「nCrの中身」をリストで取得する

数値n, rを指定して、「nCrの中身」をリストで取得したい。 たとえば、n=5, r=4で、 { {1,2,3,4}, {1,2,3,5}, {1,2,4,5}, {1,3,4,5}, {2,3,4,5} } を取得する方法である。 数値オブジェクトn, rを作成のうえ、 Execute[{"usiList =" + (Sum[Join[{Sequence["…

数値をリサイズする

たとえば、下図のように、11〜34のスライダーaを動かして、0〜1を得られるようにしたい。 このためのオリジナルツール「Resize」を作成した。 Resize tool - GeoGebra 構文は、 Resize[<数値>, <元の最小値>, <元の最大値>, <新たな最小値>, <新たな最大値>]…

(覚書)3つの線分のリストから三角形を返す

前提オブジェクト 任意の3つの線分からなるリストsegmentList 目的のオブジェクト If[Length[Unique[Flatten[Zip[{Point[α, 0], Point[α, 1]}, α, segmentList]]]] ≟ 3 ∧ (Min[Unique[segmentList]] ≠ 0) ∧ Length[Unique[segmentList]] ≟ 3 ∧ (Area[Polygon…

「0 < 数値 <= 最大値」をループさせる

0,1,2,3, 0,1,2,3, 0,1,2,3,... のように、 0を含み、最大値を含まないループ(0 <= 数値 < 最大値)は、 Mod[ <数値>, <最大値> ] で得られます。 上の例では、数値オブジェクトnを作成し、さらに、数値オブジェクト loop = Mod[n, 4] を作成すれば、nをス…

merkmal

ドロネー図の三角形をリストとして取得する

前提オブジェクト 点のリスト originalPointList ドロネー図 graph1 = DelaunayTriangulation[originalPointList] 課題 ドロネー図の三角形を、リストオブジェクトとして取得したい。 上図の例では、下図のように、5つの三角形からなるリストを取得したいと…

画面上に大量の点をランダムに生成する

設例 指定した個数の点オブジェクトを、画面上のランダムな位置に生成できるボタンを作りたい。ただし、最も近い点との距離が0.1を下回るような点ができてはならない。 ボタンのOn Click スクリプトを記述せよ。 解答例 以下の関数を、「グローバルJavaスク…

スライダー内で数値を自由に泳がせる方法

下記記事の1次元バージョンです。 数値nを、スライダー内で自由に泳がせる方法を紹介する。 min = -5 max = 5 n = 0 nのスライダーを、最小値min, 最大値maxで作成する。 updater = 0 スライダーを作成、増分0.01 target = 0 nの目標 v = 0 速度 a = 0.005sg…

多角形への最短距離

Segment[K, ClosestPoint[Sides[poly1], K]]