<script type='text/javascript' src='https://cdn.plot.ly/plotly-latest.min.js'></script> was added in the page head.
xxxxxxxxxx
%%html
<div id='plotlychart' style='width:600px; height:500px;'/>
<script>TEST=document.getElementById('plotlychart');
function get_int(min,max) {
return Math.floor(Math.random()*(max-min+1))+min;};
function fx(a,b,c,q,n,t,k) {
var x1=Math.cos(Math.PI*t/n+k*Math.PI/q)+
Math.cos(a*Math.PI*t/n+k*Math.PI/q);
var x2=Math.cos(b*Math.PI*t/n+k*Math.PI/q)+
Math.cos(c*Math.PI*t/n+k*Math.PI/q);
return x1+x2};
function fy(a,b,c,q,n,t,k) {
var y1=Math.sin(Math.PI*t/n+k*Math.PI/q)-
Math.sin(a*Math.PI*t/n+k*Math.PI/q);
var y2=Math.sin(b*Math.PI*t/n+k*Math.PI/q)-
Math.sin(c*Math.PI*t/n+k*Math.PI/q);
return y1+y2};
function arx(a,b,c,q,n,k) {
return Array(2*n+1).fill(k).map((k,t)=>fx(a,b,c,q,n,t,k));};
function ary(a,b,c,q,n,k) {
return Array(2*n+1).fill(k).map((k,t)=>fy(a,b,c,q,n,t,k));};
function col(k,q) {
return 'rgb('+(k/(2*q+2)).toString()+',0,'+
(1-k/(2*q+2)).toString()+')';};
function plt(k) {
return Plotly.plot(TEST,[{x:arx(a,b,c,q,n,k),
y:ary(a,b,c,q,n,k),
line:{color:col(k,q),width:.3},
name:k.toString()}]);};
var a=get_int(5,9),b=get_int(10,14),c=get_int(15,19),
q=get_int(3,8),n=get_int(10,350);
for (var k=1; k<2*q+1; k++) {plt(k);}
No comments:
Post a Comment