Skip to main content
Known Participant
April 19, 2022
Answered

“random mountains”script.How to implement in animate?

  • April 19, 2022
  • 2 replies
  • 350 views
var arr=[],N=10,H=100,S=25,B=0.1,pts=[];
for(i=0;i<N;i++)arr.push(Math.random()*H);
for(var i=-S;i<=H+S;i++)pts.push([i,f(i)]);
pts.push([H+S,-S],[-S,-S])
app.activeDocument.pathItems.add().setEntirePath(pts)
function f(x){
var d,y=0;
for(var i=0;i<N;i++)if((d=S-Math.abs(arr[i]-x))>0)y+=d*B;
return y;
} // #dtp

 

This topic has been closed for replies.
Correct answer JoãoCésar17023019

Hi.

 

A suggestion:

 

var dom = fl.getDocumentDOM();
var arr = [];
var N = 10;
var H = 100;
var S = 25;
var B = 0.1;
var pts = [];
var i, myPath;

function f(x)
{
	var y = 0;
	var d, i;

	for (i = 0; i < N; i++)
		if ((d = S - Math.abs(arr[i] - x)) > 0) y += d * B;

	return y;
}

for (i = 0; i < N; i++)
    arr.push(Math.random() * H);

for (i = -S; i <= H + S; i++)
    pts.push([i, f(i)]);

path = fl.drawingLayer.newPath();

for (i = 0; i < pts.length; i++)
	path.addPoint(-pts[i][0], -pts[i][1]);
	
path.addPoint(-pts[0][0], -pts[0][1]);
path.makeShape();

 

 

Just remember to put the code in a .jsfl file.

 

I hope it helps.

 

Regards,

JC

2 replies

JoãoCésar17023019
Community Expert
JoãoCésar17023019Community ExpertCorrect answer
Community Expert
April 19, 2022

Hi.

 

A suggestion:

 

var dom = fl.getDocumentDOM();
var arr = [];
var N = 10;
var H = 100;
var S = 25;
var B = 0.1;
var pts = [];
var i, myPath;

function f(x)
{
	var y = 0;
	var d, i;

	for (i = 0; i < N; i++)
		if ((d = S - Math.abs(arr[i] - x)) > 0) y += d * B;

	return y;
}

for (i = 0; i < N; i++)
    arr.push(Math.random() * H);

for (i = -S; i <= H + S; i++)
    pts.push([i, f(i)]);

path = fl.drawingLayer.newPath();

for (i = 0; i < pts.length; i++)
	path.addPoint(-pts[i][0], -pts[i][1]);
	
path.addPoint(-pts[0][0], -pts[0][1]);
path.makeShape();

 

 

Just remember to put the code in a .jsfl file.

 

I hope it helps.

 

Regards,

JC

kqskcmAuthor
Known Participant
April 19, 2022

Thankyou, works perfectly.

JoãoCésar17023019
Community Expert
Community Expert
April 19, 2022

You're welcome.

kqskcmAuthor
Known Participant
April 19, 2022