Döngü içine rastgele renk kodu yazdırmak istiyorum

Kodla Büyü

GezginN61

Seçkin Üye
Seçkin Üye
Mesajlar
352
Arkadaşlar aşağıdaki döngüde color rengini rastgele vermek istiyorum. Bu işi nasıl çözebilirim?

<script>
var pieData = [

<%Do While Not Rs.Eof %>
{
value: <%=Rs(1)%>,
color:"Red",
highlight: "#90EE90",
label: "<%=Rs(0)%>"
},

<%
Rs.MoveNext
Loop
%>

];

window.onload = function(){
var ctx = document.getElementById("chart-area").getContext("2d");
window.myPie = new Chart(ctx).Pie(pieData);
};
</script>
 
aklıma ilk gelen yöntem dizi şeklinde tanımladığınız string kaynağı içerisinden rasgele indis numarası ile çekebilirsiniz.
örneğin;
color[0]="Red";
color[1]="Blue"; gibi


ya da Stackoverflow'da şu şekilde güzel bir çözüm kullanmışlar.

color:'#'+(0x1000000+(Math.random())*0xffffff).toString(16)
 
Rastgelede aynı renk gelme ihtimali oluyor.
Javacript ile benzer kodlar buldum ama benim scripteki color karşına yazdıramadım :(
 
Sanırım grafik hazırlıyorsunuz, GezginN61 hocamın dediği gibi en basit yol, döngünün üstünde bir yerde bir dizi içine istediğiniz kadar renk tanımı yapmak, daha sonra bunu aşağıda çağırmak. Kullanmak istediğiniz ana renkleri her zaman büyük orandan başlayarak da verirseniz, grafik göze daha hoş gelecektir.
 
Aşağıdaki şekilde yaptım ama yine içime sinmedi. :)

Kod:
<%
 DIM renkler(20)
renkler(0) = "#F7464A"
renkler(1) = "#46BFBD"
renkler(2) = "#FDB45C"
renkler(3) = "#949FB1"
renkler(4) = "#4D5360"
renkler(5) = "#ADD8E6"
renkler(6) = "#DDA0DD"
renkler(7) = "#008080"
renkler(8) = "#9ACD32"
renkler(9) = "#778899"
renkler(10) = "#FF69B4"
renkler(11) = "#7297BA"
renkler(12) = "#FF542E"
renkler(13) = "#F7464A"
renkler(14) = "#FFF0BA"
renkler(15) = "#F2BC00"
renkler(16) = "#CFD6DE"
renkler(17) = "#669966"
renkler(18) = "#993366"
renkler(19) = "#097054"
renkler(20) = "#FFDE00"
a=0
%>

      <script>
	 		var pieData = [
					   
					   <%Do While Not Rs.Eof %> 

				{
					value: <%=Rs(1)%>,
					color:"<%=renkler(a)%>", 
					highlight: "#FF5A5E",
					label: "<%=Rs(0)%> Sınıfı"
				},
				
 <%
Rs.MoveNext
a=a+1
Loop
%>

			];

			window.onload = function(){
				var ctx = document.getElementById("chart-area").getContext("2d");
				window.myPie = new Chart(ctx).Pie(pieData);
			};
	</script>
 
Tam olarak nasıl bir şey hocam? Bir kez kullandığınız rengi bir daha kullanmak istemiyorsanız üretilen sayıyı bir arraylistte tutup kullanımı kontrol edebilirsiniz.
 
o zaman sayılar ve haarflerden oluşsan bi for yapın hocam iç içe isterseniz rastgele 6 tane değişken alın mesela fd4444 gibi bir değer gelirse karşı lık rengini atarsınız. onuda bi değişkene atıyın sonraki renk önceki ile aynı ise tekrar döndürün gibi yapılabilir.
 
Garanti olsun diye 30 renk tanımladım. Sıralayla kullanılıyor. En azından renklerin uyumunu ayarladık diyelim. Şimdilik böyle kalsın :oops:
 
Geri
Üst