Interaction with GeometryJ

print

幾何との連携


 CindyScript は Cinderella で作図した要素を操作することができます。要素の表示についての情報を得たり、それらを操作することができます。CindyScript で要素を削除したり、新たに作ったりすることもできます。

要素を動かす


CindyScript での計算は、シンデレラの図形の自由要素の位置をコントロールするのに使えます。その一つは、自由要素の位置をはっきりと指定することです。たとえば、Aが自由要素のとき、 A.xy=[1,1] は、その点を座標 [1,1] に設定します。 もう一つの方法は moveto 演算子を使って点を動かすことです。


自由要素を動かす: moveto(<geo>,<pos>)



説明: この演算子では <geo> に幾何の自由要素を、<pos> にこれを動かしたい位置を記述します。この演算子によって自由要素の動きをシミュレートします。

<geo> が自由点であれば、 <pos> は2つの数のリスト [x,y] か3つの数のリスト [x,y,z] です。 前者はユークリッド座標と解釈されます。後者は同次座標と解釈され [x/z,y/z] に点を打ちます。

<geo> が自由直線であれば <pos> は3つの数のリスト [a,b,c] でなければならず、直線 a*x + b*y + c = 0 に設定されます。

例: 次のコードは、幾何の要素をどのように動かせるかをまとめたものです。要素のデータに直接アクセスして動かすものも含みます。

//A は自由点
moveto(A,[1,4]);        // 点Aをユークリッド座標(1,4)に置く
A.xy=[1,4];             // 点Aをユークリッド座標(1,4)に置く
A.x=5;                  // A のx座標を 5 にする。y座標は変化しない
A.y=3;                  // A のy座標を 3 にする。x座標は変化しない
moveto(A,[2,3,2]);      // A を同次座標 [2,3,2] に置く
A.homog=[2,3,2];        // A を同次座標 [2,3,2] に置く

//a は自由曲線
moveto(a,[2,3,4]);      // a を同次座標 [2,3,4]に置く
a.homog=[2,3,4];       // a を同次座標 [2,3,4]に置く

//b は傾きつき直線
a.slope=1;              // 傾きを 1 にする

//C は半径が自由な円
C.radius=1;             // 半径を 1 にする






幾何要素のハンドル



動いた要素: mover()



説明: この演算子は、マウスによって今動かされた要素が何であるか(そのハンドル)を返します。





マウスのあるところの要素: elementsatmouse()



説明: この関数は、現在マウスカーソルの近くにある要素のリストを返します。

例: 次のスクリプトはちょっとした意味があります。このスクリプトをMouse Move スロットに置いて実行すると、マウスカーソルの近くにある要素が消えます。マウスカーソルが遠ざかればまた現れます。

apply(allelements(),#.alpha=1);
apply(elementsatmouse(),#.alpha=0);
repaint();





オブジェクトへのインシデント: incidences(<geo>)



説明: この関数は、幾何要素 <geo> とインシデントなすべての要素のリストを返します。




その名前の要素を取り出す: element(<string>)




説明: この関数は、 <string> の名前の幾何要素を返します。

例: element 演算子は、要素名が無効であるか、あるいはすでに使われているような場合に使われます。たとえば、i という名前の直線の色にアクセスしようとすると、i は虚数単位の名前として予約されているので、 i.color=1,1,1external link と書くことはできません。このような場合、次のように書きます。

element("i").color=[1,1,1]






幾何要素の生成と消去



自由点を作る: createpoint(<string>,<pos>)



説明: この演算子は <string> をラベルとする点を打ちます。点の位置は <pos> です。すでに同じ名前の点がある場合には新しく作らず、単に指定した位置に移動します。




幾何要素を作る: create(<list1>,<string>,>list2>)



説明: この演算子は、任意の幾何要素を作り出します。アルゴリズムがいくつか微妙な点を引き起こしますので、特別な用途に限られます。

第1引数の <list1>は生成する要素の名前のリストです。第2引数の <string> は幾何学的なアルゴリズムの内部的な名前です。第3引数の <list2> は、定義のために必要なパラメータのリストです。
次の表で、いくつかの例を示します。

create(["A"],"FreePoint",[[1,1,1]]);
create(["B"],"FreePoint",[[4,3,1]]);
create(["a"],"Join",[A,B]);
create(["X"],"CircleMP",[A,B]);
create(["Y"],"CircleMP",[B,A]);
create(["P","Q"],"IntersectionCircleCircle",[X,Y]);
create(["b"],"Join",[P,Q]);
create(["M"],"Meet",[a,b]);


この一連のコードで、次の図のように幾何要素を作ります。6番目の命令で円の交点を作るとき、2つの点の名前のリストがなければなりません。



幾何要素を作るときの正しいパラメータについては、次に述べる algorithminputs 関数によって得られます。




幾何要素の消去: removeelement(<geo>)



説明: 幾何要素を、それに関連するものも含めて消去します。



幾何要素を構成する要素: inputs(<geo>)



説明: この関数は、幾何要素 <geo> を定義するために必要な要素のリストを返します。それらは幾何要素のほか、数やベクトルであるかも知れません。




幾何要素の作図手順: algorithm(<geo>)



説明: この関数は <geo> の作図手順を文字列で返します。

例: 次のスクリプトはすべての要素に対してその作図手順を示します。

els=allelements();
data=apply(els,([[#.name],algorithm(#),inputs(#)]));


 垂直二等分線の作図手順が次のように出力されます。:

 [[["A"],"FreePoint",[[4,4,-4]]],
  [["B"],"FreePoint",[[4,-3,1]]],   
  [["a"],"Join",[A,B]],
  [["C"],"Mid",[A,B]],
  [["b"],"Orthogonal",[a,C]]
] 






要素の属性へのアクセス


 色や大きさといった、要素の属性は .color, .size などのオペレータでアクセスできます。しかし、要素にはたくさんの属性があります。それらにアクセスするには次の関数を用います。


すべての属性のリスト: inspect(<geo>)



説明: 幾何要素の属性のリストを返します。

例: inspect(A) とすると、自由点 A の属性名が次のようにリストアップされます。

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





変更可能な属性へのアクセス: inspect(<geo>,<string>)



説明: 変更可能な任意の属性にアクセスします。

例:A の色に、 inspect(A,"color") によってアクセスします。




変更可能な属性を設定する: inspect(<geo>,<string>,<data>)



説明: 変更可能な属性の値を設定します。

例:A の色を inspect(A,"color",(1,1,1)) によって白に設定します。





再描画をする: repaint()



説明: この関数は描画している図を強制的に再描画します。これは、スクリプトが図の更新を必要とするときに実行されます。この関数は draw あるいは move スロットにおいてはいけません。



再描画その2: repaint(<real>)


説明:repaint命令を、パラメータで与えられたミリ秒だけ遅らせて実行します。




軌跡上の点: locusdata(<locus>)



説明: この関数は、<locus>によって与えられる軌跡上の点の xy-座標のリストを返します。

Contributors to this page: Akira Iritani .
Page last modified on Friday 26 of August, 2016 [11:29:35 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