うしブログ

うしブログ

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

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

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

変数の値の変化のしかたをコントロールする

問題

tが0から10まで動く際に、次のような変化をする変数pを作りたい場合、どうすればよいでしょうか。

①10から0まで変化する(変化率dp/dtは一定)。

②10から0まで変化する(変化率dp/dtは逓増)。

③t=0のときp=0で、そこからt=3までpは増加する(dp/dtは一定)。t=3のときはp=7で、そこからt=10までpは減少する(dp/dtは一定)。t=10のときp=4である。

④[t]が偶数のときp=0で、[t]が奇数のときp=1である。

 

 

pをtの関数として定義する方法

①p=-t+10としてpを定義する。

②保留

③pの定義を、If[0<=t<=3,(7/3)*t,3<t<=10,(-3/7)t+58/7]とする。

④pの定義を、If[Mod[floor(t),2]==0,0,1]とする。

 

Spline[ ]やPolyLine[ ]を活用する

④はともかく、①〜③で、もっと直感的にpの変化のしかたをコントロールする方法としては、以下のような方法があります。

 

(1)自由な3点A,Bを用意する。

(2)Aの座標を(0,10), Bの座標を(10,0)にする。

(3)リストオブジェクトlist1を、{A,B}で定義する。

(4)折れ線オブジェクトaを、PolyLine[list1]として定義する。

(5)直線オブジェクトbを、x=tとして定義する。

(6)点Pを、Intersect[a,b]として定義する。

(7)p=y(P)とすれば、pは指定通りの変化のしかたをする。

 

(1)自由な3点A,B,Cを用意する。

(2)Aの座標を(0,10)、Bの座標を(2,2)、Cの座標を(10,0)にする。

(3)リストオブジェクトlist1を、{A,B,C}で定義する。

(4)媒介変数曲線aを、Spline[list1,3]として定義する。

(5)直線オブジェクトbを、x=tとして定義する。

(6)点Pを、Intersect[a,b]として定義する。

(7)p=y(P)とすれば、pは指定通りの変化のしかたをする。

f:id:usiblog:20160804111826p:plain

 

(1)自由な3点A,B,Cを用意する。

(2)Aの座標を(0,0)、Bの座標を(3,7)、Cの座標を(10,4)にする。

(3)リストオブジェクトlist1を、{A,B,C}で定義する。

(4)折れ線オブジェクトaを、PolyLine[list1]として定義する。

(5)直線オブジェクトbを、x=tとして定義する。

(6)点Pを、Intersect[a,b]として定義する。

(7)p=y(P)とすれば、pは指定通りの変化のしかたをする。

f:id:usiblog:20160804112202p:plain