Illustrator JS kılavuzuna dayanarak aşağıdaki kodu buldum. Bu kod tam olarak istediğinizi yapar:
- İki renk durağı olan bir degrade oluşturur: siyah beyaz
- Beş kez tekrar eder
- Etkin (seçili) öğeye kontur olarak uygular
Çizginin altında daha genel bir versiyon bulunabilir.
(1) Öncelikle, degradenin yinelemesi için gereken renk sayısını ve istenen süreleri ayarladık:
//Change these
var numberOfColors = 2; //Change this to the desired number of colors in the gradient
var iteration = 5; //Change this to the desired times you want to repeat the gradient
(2) Sonra bazı değişkenleri daha sonra kullanmak üzere ayarladık. GradientInterval
Her bir nokta ihtiyaçları ayarlanabilir göre yüzde konumunu hesaplar. totalNumberofStops
oldukça açıklayıcı. colors
Dizi sonra kullanılacaktır.
//Don't change these
var i,j;
var gradientInterval = 100 / numberOfColors / iteration;
var totalNumberOfStops = numberOfColors * iteration;
var colors = [];
(3) O zaman renklerimizi tanımlayabiliriz. numberOfColors
Başlangıçta ayarlandığı kadar çok renge ihtiyacınız var . Eksik renkler varsayılan olarak siyaha döner.
//Don't forget to push the colors to the colors array!
var color1 = new RGBColor();
color1.red = 0;
color1.green = 0;
color1.blue = 0;
colors.push(color1);
var color2 = new RGBColor();
color2.red = 255;
color2.green = 255;
color2.blue = 255;
colors.push(color2);
(4) Degrademizi oluşturma ve ona bir ad verme zamanı. Şimdi türü de ayarlayabiliriz.
//Let's initiate the gradient & name it
var newGradient = app.activeDocument.gradients.add();
newGradient.name = "new_gradient";
//Choose the gradient type here
//newGradient.type = GradientType.RADIAL; //Uncomment the one you need
newGradient.type = GradientType.LINEAR; //Uncomment the one you need
(5) Şimdi iyi kısım için. İlk önce totalNumberOfStops
her bir durağı oluşturabilmemiz ve degradeye ekleyebilmemiz için üzerinde döngü yapacağız . Yeni bir durak oluşturuyoruz ve sonuncusundan bir tane daha ayarlıyoruz. Şimdi renkler dizimizden doğru rengi almamız gerekiyor. Döngü indeksinin renk sayısına bölünmesiyle 0 olduğunda, her renge sahip olduğumuzu biliyoruz ve tekrar başlamamız gerekiyor, bu nedenle renk dizinimizi sıfırlıyoruz.
Örnek 5 kere döngü yapmak istediğim altı renk var. Otuz durağımız var. Biz kullanarak tüm renkleri üzerinde döngü j
. Ne j
olur 6 daha fazla renk (altı dizi yedinci renk ancak altı renk dizisi vardır) vardır. Böylece altıdan her biri tekrar 0'dan başlıyoruz. Aksi takdirde bir sonraki renge geçiyoruz.
Şimdi sadece son renk durağını% 100 eklememiz gerekiyor.
//Now here is where the magic starts
for(i=0;i<totalNumberOfStops;i++){
var newStop = newGradient.gradientStops.add();
newStop.rampPoint = i * gradientInterval;
var modulus = i % numberOfColors;
if(modulus === 0){
j = 0;
}else{
j+=1;
}
newStop.color = colors[j];
}
var lastStop = newGradient.gradientStops.add();
lastStop.rampPoint = 100;
lastStop.color = colors[colors.length-1];
(6) Son adım: degradenin strokta uygulanması. Bitti. Parti!
//Apply gradient stroke to selected object
var colorOfGradient = new GradientColor();
colorOfGradient.gradient = newGradient;
var topPath = app.activeDocument.pathItems[0];
topPath.stroked = true;
topPath.strokeWidth = 140;
topPath.strokeColor =colorOfGradient;
(7) Bunu yapmak için kodu bulamadığım için konturu elle 'Kontur boyunca degrade uygula' olarak ayarlamanız gerekebilir.
Bu kod sizin durumunuz için özel olarak hazırlanmıştır. Daha genel bir versiyonu burada bulabilirsiniz: http://pastie.org/10921740
Bazı örnekler:
İki renkli yinelenen iki renk gradyanı:
10 kez yinelenen beş renk gradyanı:
50 kez yinelenen iki renk içeren bir degrade:
50 kez 50 renk yinelenen bir eğim gradyanı: