跳到内容
永磁
主人
转到文件
 
 
此时无法检索参与者
309线(253 sloc)6.9千字节

是什么辛蒂JS公司?

CindyJS是一个为web创建交互式(数学)内容的框架。

它旨在与灰姑娘,为脚本语言CindyScript提供了一个解释器,以及一组可以用来描述 构造的几何操作。这些组件一起使用,可以很容易地可视化各种概念,特别是几何和一般数学,以及其他各种领域的概念。

使用CindyJS进行您自己的交互式物理模拟
使用CindyJS进行您自己的交互式物理模拟
自由实验质量,弹簧,电荷和场!从现实的限制中解放出来,从原子物理学,经典力学到行星轨道,各种各样的场景都可以被研究。用鼠标毫不费力地画出实验草图,只需轻轻一点鼠标,就能让实验变得生动起来。
使用辛迪脚本
使用辛迪脚本

CindyJS有自己易于学习的脚本语言辛迪脚本,可用于各种智能小程序。

当你坐在一个喧闹的酒吧里,除了一支笔和一张餐巾什么都没有时,你有没有向另一位数学家解释过什么?辛迪脚本是相当于餐巾纸的编程。换句话说,辛迪脚本被设计成可以用粗略的,有时是非正式的,尽管如此,还是完整的,最重要的是可以理解的方式来表达。

它允许数学概念的高级实现。

不用学习WebGL就可以使用GPU
不用学习WebGL就可以使用GPU

CindyJS为面向数学的高级用户提供访问GPU着色器语言的权限,而无需学习着色器语言。

在这里,您可以看到一个用CindyJS渲染的复杂相位肖像的GPU渲染示例。您可以输入任意复杂函数或选择预定义函数并查看其复杂相位图。

f(z)= (z^5-1) (z ^(-5)-1) (z-1)/(z+1) z^(1+i) z=2⋅z+pi/2 (sin(z-i)/sin(z+i))^(1+i) 牛顿

有关更多WebGL相关内容,请访问我们的辛迪格尔画廊.

如果你想看看你的程序,你可以看看CindyGL我们的CindyGL教程.

示例

可以看到一些精选的例子在我们的陈列馆里.

在我们的主题分类库.

入门

这个文档包含开始使用CindyJS的部分。

错误和功能请求

如果某件事没有按你想要的或需要的方式工作,请随意提出问题不过,请先在我们的系统中查看票证问题。

许可证

CindyJS根据Apache 2许可证.

<script type=“text/javascript”src=“/dist/v0.7/Cindy.js”></script>《<脚本》第二次《<脚本》第十次《<脚本》第三次<本州/第三次/v0.7/CindyGL.CindyGL.js”><《脚本》两次〈两次〈脚本类型〉“文本/javascript“>;var-cdy={;树:树:CindyJS。新的实例({脚本:“树*,“树*”,;;几何:几何:[;{名{名称:“一名”一型“自由”,类型:“自由”,pos pos 0,-1.75],颜色:[1,0,0,0,0,0,0阿尔法:.3}, {name:“B”,类型:“Free”,pos:[0,-.8],color:[1,0,0],pinned:false,size:6,alpha:.3}, {name:“C”,type:“Free”,pos:[-.34,-.18],color:[1,0,0],pinned:false,size:6,alpha:.3}, {name:“D”,类型:“Free”,pos:[.34,-.18],color:[1,0,0],pinted:false,size:6,alpha:.3} ],动画方面:动画方面,{动画方面,{autoplay:真的}, 港口:[{;id:“树”的“三“,宽度:宽度:300, 高度:300,三,〈十年的改革:[{visibleRect:[[-3,—2.5,3,3.5,3.5三3,3.5],(3.5,3.5,3.5](3 3.5的3.5],(10)保洁者:CindyJS金基金基金基金基金的基础上,新的实例({默认外观:{DiDi依赖:0.7的两方面的两个方面的两个方面的两个以上的两个以上的金的方向的方向的方向的方向的方向的在,类型:“免费”,pos:[-5,5],颜色:[0,0,5],颜色:[1,5,5,5]},[(10;[5]5],[(10,[7]],[0,0,0,0],大小:3,3,3,[1,[1,0,0],大小:3},[3,[3],[1,0,0],大小:3},[10,[1]大小:3},[10,[1,8],大小:3},[1,[1,8],颜色:[0,0,0,0],大小:3,[10,0,0,0]大小:3,[1,10,[3,[3,[1,[1,[1,[1,[1,[3,[1,[3,0],大小:三、三、三、三、三、三、三、三、三、三、三、三、三、四、三、三、四、三、五、三、五、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、一:一、三、一:一、三、一、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三;{名称:“C”,类型:“段”,args:[“D”,“E”],颜色:[0,0,0,0],尺寸:1},{名称:D:“D:”D,“D”,类型:“分段”,args:[“F”,“G”],颜色:[0,0,0,0,0,0],大小:1}1}起, 行为:行为:[10;{行为:{行为:{类型:”环境,重力,重力:-.2}}},{{名称:“A”,行为:{类型:“质量:”质量,摩擦:摩擦:0.0 0,摩擦:0.0,vx:0.3},},{10{名称:“A”,行为:{类型:”G“类型:{类型:“类型:”行为:{类型:“类型:“类型呃“}}},,{name:“b”,行为:{type:“Bouncer”}, {name:“c”,行为:{type:“bouncher”}}, {name:“d”,行为:{type:“Bouncer”}} ,autoplay:true, 端口:[{id:“bouncher”, 宽度:300, 高度:300, 转换:[{visibleRect:[-10,-10,10,10]}]}]}]}]}] },除此之外,该公司还将根据自己的基本情况,在新的实例中({{主要是:id:“complexPlot”,宽度:宽度:300,;;高度:300,;高度:300,;;十年后,改革:改革:[{visibleRect:[-1.5、1.5、1.5、1.5、1.5、1.5、1.5、1.5]、(1.5)之间的{根据以上的脚本:“复杂*”, 几何图形:[[,地理位置:[[自动铺设:真实的},;(10)使用的使用:[“Cindygml”除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除ngsth=错误;document.addEventListener('DOMContentLoaded',函数(event){ updateVisibility(); }); window.addEventListener('滚动',函数(e){ if(!doingsth){ window.requestAnimationFrame(function(){ updateVisibility(); doingsth=false; },10);//10毫秒延迟 } } function updateVisibility(){ for(cdy中的var i){ var rect=document.getElementById(cdy[i].config.ports[0] .getBoundingClientRect();if(rect.bottom>=0&&rect.top<=window.innerHeight){/矩形可见 if(!cdy[i].已开始的cdy[i]已开始的cdy[i]cdy[i]已启动的cdy[i](startup();;cdy[i]的].已开始的=真的;除此之外,基本上不必再由cdy[i].开始)除此之外,(cdy[i].已开始)cdy[i]的基本情况(如果(cdy[i].已开始)cdy[i]cdy[i]的方向上,他们的基本上由两个方面组成:一个是,一个是由两个方向组成的,一个是由两个方向组成的,一个是由两个方向组成的;另一个是,第三个方向是由一个单一图像组成的单一图像的单一图像的时间所达到的时间的时间;这一个单一图像的显示所有(0..N-1, createimage(“树”+#,600,600);//supsample ;;//超级采样 ;; forall(0..1,1, createimage(“out”+除#,600,600,600); 除此之外,它=1; o1(it)的一个条件是:即“树”+“树”+mod(地板(它的地板(它的-2-(N-3)*random()),N)起起到的作用,N)起到的主要作用是:rp()(随机()(random(),random())—(.5.5,.5))*.25;除除此之外,除除除除除以外,L=((3,—2.5,—2.5)的L=; R=(3,-2.5); 最后一秒=-1; cnt=0;在《中华人民共和国如果(cnt<10, 在 如果(cnt<10, it=mod(it+1,N,N); f1=地图(A、B、B、B、C+rp()()); f2=地图(A、B、B、B、D+rp()());; 清晰图像(“树”+它); 画布(L、R、“树”树“+树”+它, 画图(A、B、颜色->[0,0,0,0,0),大小->13);𘪒10画布(L,R,“树”树”“树”+它,;画图(A,B,B,B,颜色-;drawimage(f1*L.homog,f1*R.homog,o1(it),alpha->.55+random()/2);;(2)抽奖图片(f2*L.homog,f2*R.homog,o2(it),阿尔法->.55+random()/2);;;;;;;;;;;;;; ;; m=mod(floor(seconds()/imagetime)/floor(floor(seconds()/imagetime)>lastsecond秒, clearimage(“out”+m); 帆布(L,R,“out”+m,drawimage(L,R,“树”+它的+它)); LastSecondseconds=floor(seconds()/imagetime); cnt=0;f=(1-cos(mod(seconds()/imagetime,1)*pi))*.5; drawimage(L,R,“out”+m,alpha->f); drawimage(L,R,“out”+(1-m),alpha->(1-f));10; ; 的 drawimage(L,R,“L[A.xy]; 如果(长度(L)>80,L=应用(2..长度(L),L#)); 阻尼=.95; al=阻尼^(长度(L));为全部(1.长度(l), 绘制(l#,阿尔法->al,颜色->(1,.5,.5),尺寸->7*al); al=al/DAM);10;</脚本>;<脚本id=“comprinit”type=“text/x-cindyscript”>;f(z):=z ^5-1; T00=seconds(); t0=seconds();;</脚本>;<脚本>,<脚本id=“complexdraw”type=“text/x-cindyscript”的“> HSVTOrgorgetOrg”HSVTOrgorgOrg之间,HSVTorStor起起B(h,s,v):=( 地区(j,p,q,t,f); h=(h-楼层(h))*6; j=楼层(h); f=h-j;;如果(j==0,[1,t,p],;如果(j==2,[p,1,p,p],;如果(j==1,[q,1,p,p],;如果(j==1,[q,1,p],,如果(j==2,[p,1,p],,如果(j==2,[p,1,t],,如果(j==3,[p,q,1],如果(j=4,[t,p,1], 如果(j=5,[1,p,q],(j=5,[1,p,q](q]=5,[1,p,q],[10)如果(j=2[1,p,p,p,p,p;); time=t0-seconds(); color(z):=(//复数z应该使用什么颜色?区域性(n,grey1,grey2); n=12; z=log(z)/2/pi+i*i*time*.1; zfract=n*z-地板(n*z);//n*z在C mod z中n*z的价值z[i]; grey1=im(zfract); grey1=im(zfract); re(zfract);//re(zfract); hsvToRGB(im(z),1.,.5+.5×5*re(sqrt(grey1*grey2 grey2 grey1*grey2 grey2 grey1*grey2))); 彩色图( z=复杂(#); 颜色(f(z)) ; </script>
此时不能执行该操作。