うしブログ

うしブログ

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

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

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

GeoGebra-応用的な使い方

「平面を平面で切断した片側」の描画

目次 課題 サンプル 解説 方針 目的の図形の描画 オリジナルツール「HalfPlane3D」 使用例 参考:ツールの定義 課題 3点A(1,-1,0), B(-1,1,1), C(-1,-1,2)がある。 3点A,B,Cを通る平面p: Plane(A, B, C)を作成する。 平面q: z=1を作成する。 pをqによって切…

グローバルJavaScript入力欄をAceエディタ化 & jQueryライクにオブジェクトスタイルを編集 [geoEditor-1-4]

下記記事で紹介したスクリプトの改良版です(v.4)。 usidesu.hatenablog.com v.3からの改善点 GeoGebraオブジェクトを、jQueryライクにセレクトして、スタイル情報を参照・変更できるようになりました(後述)。 機能紹介 グローバルJavaScript入力欄を綺麗…

最前面のテキストエリアにエラーメッセージを表示させる実験

function ggbOnInit() { seizureErrorDialog(10); } // テキストエリアをhtmlに生成 document.body.insertAdjacentHTML('afterBegin', '<textarea id="usitext"></textarea>'); document.getElementById('usitext').style.position = "fixed"; document.getElementById('usitext').style.width …

geogebra.org/classic でのエラーメッセージを横取りする

//web版GeoGebraのエラーダイヤログを出ないようにして、エラーメッセージのみを横取りする(console記録+テキストオブジェクトに書き出し) // ggbOnInit関数内に、seizureErrorDialog(); を記述しておくとよい // seizureErrorDialog(10);←10行分をテキス…

ggbApplet.registerClientListenerのテスト

apiでクリック位置を取得するテスト

GeoGebraでピタゴラスツリー

本記事は、下記ツイートに触発されて、「ピタゴラスツリー」をGeoGebraで作成した際の記録である。 ピタゴラスの定理により、各色の面積はずっと同じです。 pic.twitter.com/GY2RueVXcG — ζWalker (@walker0226) May 15, 2021 なお、本記事で解説する作成方…

f(x)=∫_0^1 |e^t-x|dtをGeoGebraで図示する

謝辞 永島 豪 先生(@Go_Nagashima)には、本稿の着想を得るきっかけを与えて頂きました。感謝申し上げます。 課題 のグラフをGeoGebraで図示したい。どのようにすればよいか。 うまくいかない方法 定積分を返すコマンドである Integral[<関数>,<開始値>,<終…

リストの値にスライダーを吸い付かせる+ラベルを数式表示(CAS利用版)

(ご注意) 本記事で紹介する情報は、web版GeoGebra(クラシック6)にのみ有効です。ローカル版GeoGebraではうまく機能しません。また、記事公開後のGeoGebraのアップデートにより、正常に機能しなくなる可能性があります。あらかじめご了承ください。 課題 …

XMLデータを利用する

データの取得(DOM)およびシリアライズ //アプレットの設計をDOMとして取得 function getGGBDom() { //ggbApplet+idの場合に対応 var idStr; if (typeof document.getElementsByClassName('notranslate')[0] === 'undefined') { idStr = 'ggbApplet'; } els…

スライダーを特定の値に吸い付かせ、ラベルのルート(や分数)表記を可能にする

(ご注意) 本記事で紹介する情報は、web版GeoGebra(クラシック6)にのみ有効です。ローカル版GeoGebraではうまく機能しません。また、記事公開後のGeoGebraのアップデートにより、正常に機能しなくなる可能性があります。あらかじめご了承ください。 課題 …

テキストの開始位置(相対座標または点オブジェクト)を設定するJavaScript

//テキストの開始位置を設定 //setTextStartPoint('text1','(3,4)'); //setTextStartPoint('text1','A'); //setTextStartPoint('text1','Midpoint[(0,0),(1,1)]'); function setTextStartPoint(objName,expText){ //オブジェクト存在確認 var isexist = ggbA…

(web版GeoGebra限定)スライダーの情報を取得するJavaScript関数

//スライダーの情報を取得(戻り値eval済み) function getSliderInfo(name) { //xmlデータを取得 var xmlStr = ggbApplet.getXML(name); //DOMにパース var parser = new DOMParser(); var dom = parser.parseFromString(xmlStr, "text/xml"); //sliderタグ…

直線を、楕円の接線に吸い付かせる

課題 自由な点オブジェクトA,B,C,D,E および 楕円c=Ellipse(A, B, C)と、直線f=Line(D, E)がある。 下図のように、直線を動かして、楕円に近づけていって、直線が楕円に接する位置付近に来たときに、接線に吸い付くような挙動を実現するには、どうすればよい…

自由な点オブジェクトを、自由に泳がせるJavaScript

ここでは、自由な点オブジェクトAを、画面上を自由に泳がせるための方法を説明する。 ステップ1:グローバルJavaScriptに以下を記述する //str pointName function letPointSwim(pointName) { //オブジェクト存在確認 var isexist = ggbApplet.exists(pointN…

(調査中)JavaScript api とユーザー操作位置のピクセル情報の取得

(本記事は、一般向けの解説ではなく、調査用の記事です。) m(ワークシート) https://www.geogebra.org/m/n2cvecxm iFrame(フレーム埋め込み) https://www.geogebra.org/material/iframe/id/n2cvecxm/width/1467/height/846/border/888888/sfsb/true/sm…

画面内で点を自由に泳がせる方法(簡便法)

https://www.geogebra.org/m/xz4vyxmu 以前の方法はこちら

GeoGebraにおける「垂線の足」の作り方11パターン

課題 点Pから線分f(延長線を含む)に下ろした垂線の足を、P,fのみに依存するオブジェクトとして作成し、その定義式を示せ。 解説 目的の定義式は、何パターンも作ることができます。まず、fを延長した直線の作り方だけでも、以下のように、大きく分類して5パ…

x^4-2x^2y^2+y^4=1の描画の飛びを、何が何でも埋めたい。

Twitterにて、 x^4-2x^2y^2+y^4=1のグラフが、GeoGebraでうまく描画できない、ということが指摘されていました。 結構いいパソコンのはずなんですがどうしてgeogebra幾何がうまくいかないんですか? pic.twitter.com/sEZ9ms8upN — うべゆうと@幾何学帝国皇帝…

大きさが変動するテキストの描画位置を揃える

課題 自由な点Aに対して、数値 a = x(A) + sqrt(y(A)) / x(A) および、テキスト text1 = If[true, SurdText[a]] *1 を作成する。 下図のように、text1の右端中央が、常に点Aの左側に来るように揃えるには、どうすればよいか。 うまくいかない例 text1の位置…

スライダー操作と増分

問題 角度オブジェクトαのスライダーを、以下の設定で作成した。 最小値0°、最大値360°、増分1°、幅90px、画面上の固定された位置に配置 しかし、実際にアプレットを操作すると、下図のように、4°ずつしか変化しない。1°刻みで操作できるようにするには、ど…

ggbApplet.setCaptionの代用としてのJavaScript関数

2019.8.28現在、ggbApplet.setCaptionが動作しない場合があります。 そこで、同じ動作をするJavaScript関数を作成しました。 function setObjCaption(objName, caption) { ggbApplet.evalCommand('SetCaption[' + objName + ', \"' + caption + '\"]'); } 上…

PointLineへの憧れ

はじめに 本記事の内容は、動的幾何学ソフト「PointLine」に触発されて得られた知見に基づいています。下記にPointLineへのリンクを掲載し、謝意を表します。 aharalab.sakura.ne.jp PointLineにおける点オブジェクトは、すべてがGeoGebraでいう「自由オブジ…

(0,0)はどこに描かれるか

(設問) GeoGebraにおける、大きさ1の点は、拡大すると、下図のように、十字に並んだ12ピクセルで描画されることがわかる。 一方、x軸・y軸の太さは1ピクセルである。 いま、点(0,0)を、大きさ1で作成した。このときのGeoGebraの描画として、正しいものはど…

多角形の辺に沿って点を動かす、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…

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

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

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

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