Accessing Geometric ElementsJ

(cached)
refresh print

幾何学要素へのアクセス


CindyScript とシンデレラの幾何学部分の間のコミュニケーションは、作成物の幾何学的な対象にアクセスすることによってなされます。幾何学要素へのアクセスには2つの異なる方法があります。ひとつは、要素のラベル名で、もう一つは CindyScript の特殊演算子によってです。基本的に、シンデレラの幾何学要素のパラメータはすべて CindyScript で読むことができますし、大部分のパラメータは CindyScript で設定することができます。以下では、まず、幾何学要素へのアクセスのしかたを述べ、その後パラメータの詳細なリストを示します。


要素にその名前でアクセスする


すべての幾何学要素には個々の名前(ラベル)があります。この名前はCindyScriptへの「ハンドル」として取り扱うことができます。CindyScript において、要素はあらかじめ定義され他変数の役割を演じます。それぞれのパラメータは . (ドット)演算子によって読み書きできます。例えば、次のコードでは、点 Aの大きさを20に設定します。

A.size=20


もし、点や線がドット演算子ではなく算術演算子に含まれるときは、自動的にその位置を表すベクトルに変換されます。 したがって、点は2次元座標で表される [x,y] ベクトルに変換されます。直線は、同様に同次座標で表される [x,y,z] ベクトルに変換されます。しかし、座標を設定する場合は、ドット演算子を用いて明示的に設定されなければなりません。幾何学要素へのハンドルが算術演算子で使われないのであれば、依然として幾何学的要素として扱われます。この概念が微妙なので、少し例を挙げてはっきりさせましょう。

AB , C がシンデレラの点であると仮定します。

A.xy=(B+C)/2


は、 A を線分 BCの中点に設定します。この2点は算術演算子に含まれますので、すぐに [x,y] ベクトルとし処理されます。しかし、点 A の位置は .xy パラメータによって明示的に設定されなければなりません。

次のプログラムでは3つの点の色をすべて緑色にします。

pts=[A,B,C];
forall(pts,p,
  p.color=[0,1,0];
)


このコードでは、点の名前はリスト ptsへのハンドルとしてそのまま扱われます。 forall 演算子で走査されたハンドルは一度 p変数に代入され、そこから色のパラメータにアクセスされます。


要素のリスト


ときには、それぞれの名前によって個々にアクセスする必要がないこともあります。特に、図面の全体に対して操作をしたい場合です。たとえば、点集合の凸包を計算する時などです。そのために、CindyScript は要素のリストを返すいくつかの演算子を用意しています。たとえば、 allpoints() 演算子はすべての点の リストを返します。例でこれを示しましょう。次のスクリプトは、位置を y軸 と比較して、点の色を変えます。

pts=allpoints();
forall(pts,p,
  if(p.x<0,
    p.color=[1,1,0],
    p.color=[0,1,0];
   )
)


次の図は、ばらばらに置いた点にこのスクリプトを適用した結果を示します。


点のリストを処理する


幾何学要素のパラメータ


CindyScript でアクセスできるすべてのパラメータについて解説します。このリストは将来のシンデレラのリリース時に拡張されるかもしれません。各パラメータにおいて、読み出しのみか、読み書き可能かに関わらず、型と使用目的についての簡単な説明をします。パラメータの型は次の通りです。

  • real: 実数
  • int: 整数
  • bool: true または false
  • string: 文字列
  • 2-vector: 2次元ベクトル
  • 3-vector: 3次元ベクトル
  • 3x3-matrix: 3行3列行列

パラメータの書き込みは、時には自由要素に限られることがあります。該当する項で "free" の語を使ってそれを表します


すべての幾何学要素についてのパラメータ

名前読み出し書き込み目的
color 3-vectorオブジェクトの色 (赤, 緑, 青)
colorhsb 3-vectorオブジェクトの色 (色相, 彩度, 輝度)
isshowing boolオブジェクトの表示/非表示 (オブジェクトに依存するすべての要素に引き継がれる)
visible boolオブジェクトの表示/非表示 (従属するオブジェクトからは引き継がれない)
alpha realオブジェクトの透明度 ( 0.0 から 1.0)
labelled boolラベルの表示/非表示
name不可stringオブジェクトの名称
captionstringオブジェクトのラベル
tracebool軌跡(足跡)の表示/非表示
tracelengthint足跡の長さ
selectedboolオブジェクトが選択されているかどうか


それぞれの幾何学要素は個別の識別名を持ちます。識別名は.nameパラメータによってアクセスできます。たとえば、 A.name は文字列 "A" を返します。その名前は、画面上に表示される ラベル(caption) とは異なる場合があります。ラベルが設定されていなければ A.caption は空の文字列です。また、ラベルはインスペクタで変更することができます。

点のパラメータ

名前読み出し書き込み目的
xfreereal点のx座標
yfreereal点のy座標
xyfree2-vector点のxy座標
coordfree2-vector点のxy座標
homogfree3-vector点の同次座標
anglefreereal円周上の点の角度(円周上の点にのみ適用)
sizeint点の大きさ (0 から 40)
imagerotreal点が画像で置き換えられている場合、回転角度



直線のパラメータ

名前読み出し書き込み目的
homogfree3-vector直線の同次座標
anglefreereal直線の角度
slopefreereal直線の傾き
sizeint直線の幅 (0 から 10)



円と円錐曲線(2次曲線)

名前読み出し書き込み目的
centerfreereal円の中心
radiusfreereal円の半径
matrix不可real円または二次曲線を記述する行列
sizeint線の幅 (0 から 10)



テキストのパラメータ

名前読み出し書き込み目的
textstring文字列の内容
pressedboolean文字列の状態。ボタンならばtrue
xy2-vector文字列の位置



アニメーションのパラメータ

名前読み出し書き込み目的
runboolアニメーションの実行/非実行
speedrealアニメーションの相対的な速さ



変換のパラメータ

名前読み出し書き込み目的
matrix不可3x3 matrix変換の同次行列
inverse不可3x3 matrix逆変換の同次行列transformation




)) CindyLab((オブジェクトのパラメータ


CindyScript でアクセスできる幾何学要素以外のものとして、CindyLab のシミュレーション・パラメータがあり、 CindyScript によって読み書きができます。


すべての CindyLab 要素のパラメータ

名前読み出し書き込み目的
simulate boolオブジェクトがシミュレーションに加わるかどうか



質点のパラメータ

名前読み出し書き込み目的
mass realオブジェクトの質量
charge intオブジェクトの電荷
friction realオブジェクトの摩擦
radius real質点を球とみなすときの半径
posx real質点のx座標
posy real質点のy座標
pos 2-vector質点の位置ベクトル
vx real速度のx成分
vy real速度のy成分
v 2-vector速度ベクトル
fx不可 real粒子にかかる力のx成分
fy不可 real粒子にかかる力のy成分
f不可 2-vector粒子にかかる力のベクトル
kinetic不可 real粒子の運動エネルギー
ke不可 real粒子の運動エネルギー


質点間に力を定義したい場合があります。そのときは Integeration Tick スロットにコードを書きます。質点の位置が内部的に通常の幾何学要素と異なるタイムスケールで動くときは pos, posx および posy によってその位置にアクセスする必要があります。

バネとクーロン力のパラメータ

名前読み出し書き込み目的
l不可 realバネの現在長
lrest不可 realバネの自然長
ldiff不可 real現在の長さと自然長との差
strength realバネ定数
f不可 realバネにかかる力
amplitude real振幅
speed real運動の速さ
phase real運動の段階(位相) ( 0.0 と 1.0 の間の数)
potential不可 realバネのポテンシャルエネルギー
pe不可 realバネのポテンシャルエネルギー



速度のパラメータ

名前読み出し書き込み目的
factor real図で表されている速度と実際の速度との掛け率



重力のパラメータ

名前読み出し書き込み目的
strength real重力場の強さ
potential不可 real重力場におけるすべての質点のポテンシャルエネルギー
pe不可 real重力場におけるすべての質点のポテンシャルエネルギー



恒星のパラメータ

名前読み出し書き込み目的
mass real恒星の質量
potential不可 real恒星の場におけるすべての質点のポテンシャルエネルギー
pe不可 real恒星の場におけるすべての質点のポテンシャルエネルギー



電磁場のパラメータ

名前読み出し書き込み目的
strength real電磁場の強さ
friction real磁力のかかるフィールドでの摩擦



床と反射壁のパラメータ

名前読み出し書き込み目的
xdamp realx方向の吸収率
ydamp realy方向の吸収率



環境のパラメータ


環境は内蔵演算子の simulation() によってアクセスできます。次の項目がアクセスできます。

名前読み出し書き込み目的
gravity real全体にかかる重力
friction real全体にかかる摩擦力
kinetic不可 real全体的な運動エネルギー
ke不可 real全体的な運動エネルギー
potential不可 real全体的なポテンシャルエネルギー
pe不可 real全体的なポテンシャルエネルギー



インスペクタ


CindyScriptinspect() 関数を使えば、 インスペクタ で利用できるすべての属性にアクセスできます。たとえば、すでに描かれている点Aがあるとき、

inspect(A)


とすれば、

[name,definition,color,visibility,drawtrace,tracelength,
traceskip,tracedim,render,isvisible,text.fontfamily,
pinning,incidences,labeled,textsize,textbold,textitalics,
ptsize,pointborder,printname,point.image,
point.image.rotation,freept.pos]


という文字列が返されます。

2つのパラメータを使う形式の inspect(,) を使えば、上のリストにあるもののどれかを読み出せます。たとえば、

inspect(A,"text.fontfamily")


とすれば

SansSerif


が返ってきます。

3つのパラメータを使う形式の inspect(,,) を使えば、読み出しのみの属性(たとえば、要素の定義など)を除いて、その値を設定することができます。次の例は、Aのフォント Serif に設定します。

inspect(A,"text.fontfamily","Serif")



inspect 命令は非常に強力で、インスペクタでマウスを使ってやらなければならないようなことを自動化することができます。また、すぺてのパラメータのきめ細かいコントロールが可能になります。



ユーザー属性の設定: attribute(<geo>,<string1>,<string2>)


説明: <geo> の属性を <string1> と <string2>で設定します。

ユーザー属性の取得: attribute(<geo>,<string>)


説明: <string> で定義される幾何要素 <geo> のユーザー属性を取得します。

この2つのユーザー属性に関する関数はVisage で主に使用します。




要素の作成と消去


シンデレラ2.1からは、 CindyScript で点を追加することができます。関数

p = createpoint("A",[4,6])


は、点Aが既存でなければ、座標(4,6)に点Aを作ります。すでに点Aがあれば、座標(4,6)に点を移動します。関数の値は、作られた点か、すでにあった点になります。 つまり、createpoint- 命令で点を作ったとき、この関数を繰り返して使ったとしても悪影響はなく、その点を確実に作れます。。



removeelements 関数を使えば、図形から要素を取り除くことができます。ただし、従属する点もすべて消去されますので注意してください。 この関数の引数は、つぎのいずれかの方法で与えます。要素「A」を取り除くためには

removeelement(A)


または

removeelement(element("A"))


とします。
任意の要素を作成する他の関数については、 幾何との連携の節にもあります。

Contributors to this page: Akira Iritani .
Page last modified on Tuesday 06 of March, 2012 [09:45:11 UTC] by Akira Iritani.

The content on this page is licensed under the terms of the License.


Menu
free viagra samplehentai girlsmature pussymilfseeker cialis samplescam clip movie nude webcammother incest order viagra online cialis ukanime rapeparis hilton phone numbers viagra alternatives cialis forum cialis free samplehot girls in pantiesmonster of cocks discount cialis cilias free viagra samplesfree chat rooms cilia structurefree cartoon sex comics buy cialis order viagrafree adult videosplump girl gallerypantyhose gallerycum on her face cheapest cialisbisexual moviestampa bukakehuge black cock thumbnails buy cialis onlineporn star cialis drugwomen having sex cheap generic viagra alternative to viagra natural viagra cheap viagraoral sexteen webcam strip videosnude spanish girlserotic sex cams movies viagra side effectscartoon adultdisney sex animenude blonde hairygang bang swinger cialis viagrabisexual free moviesgay twinkswebcam chat live xxxyoung teens order cialislatina girls thongscum loversjapanese girl viagra cheapyoung japanese girlsmr chews asian beavergangbang squadshoshone indiansmature wiveslive webcam chat girlsfree ebony viagra on lineasian ladyboysteen boys viagra pillsself bondage techniques cailisincest familyfree ebony cheap cialisgay amateur cialis genericbusty asian viagra onlinemature breasts viagra for women free viagrabig boobies cialis generic viagragloryhole gaylatinas in thongs female viagraindian tits viagra 6 free samplesamateur upskirt viagra alternativefree xxx video cialis online discountgalleries of teen girls cialis dosage cheap generic cialisparis hilton pornopussy cat dollsbrutal sexgay peopleblack milfsno tits discount viagrablonde hairy pussyshemale animefree hardcore moviesmom strips for sonfat titscelebrity legsdouble anal levitra vs cialis cialis tadalafil cialis cheapgay bdsmcelebrities exposed viagra generic alternatives to viagra viagra canadabestialitypink porn stars viagra jokesclips of teen sexchicks suck horse cock online viagrasex with horsespainful analglory holes floridafree american bukkake cialis online buy viagrabig cock cum free cialisteen gay porn cialis side effects herbal viagra best price viagra purchase cialis cialis soft tabs cialis vs viagrafree fat girl webcamfree porn movie clipsoral penis suckingebony hardcore viagra pricepantyhose crossed legs cialis and levitralesbiennesblonde boobs buy viagra online