Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generowanie koloru i dodawanie do array
soliniak
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 8.08.2009

Ostrzeżenie: (0%)
-----


Mam taki oto kod i chciałbym żeby każdy z narysowanych pasków miał kolor o jeden stopień wyższy.
Próbowałem zrobić to w arrayu ale nie wiem jak wyodrębnić kolory... (uczę się (IMG:style_emoticons/default/wink.gif) )
Za pomoc z góry dziękuję (IMG:style_emoticons/default/wink.gif)

https://jsfiddle.net/ta2z06fq/

[JAVASCRIPT] pobierz, plaintext
  1. function rysuj(){
  2. draw();
  3. cooler();
  4. }
  5.  
  6. function draw(){
  7. var canvas = document.getElementById("canvas");
  8.  
  9. var ctx = canvas.getContext("2d");
  10. var rgb = 255;
  11. var rgb2 = 0;
  12. var rgb3 = 0;
  13. var rgbit = false;
  14. var rgbitmin = false;
  15. var rgb2it = false;
  16. var rgb2itmin = false;
  17. var rgb3it = false;
  18. var rgb3itmin = false;
  19. var speed = 2;
  20.  
  21. this.cooler = function(){
  22.  
  23. if (rgb == 255 && rgb2 === 0 && rgb3 === 0){
  24. rgb2it = true;
  25. }
  26. if(rgb2it === true){
  27. rgb2++;
  28. if(rgb2 >= 255){
  29. rgb2it = false;
  30. }
  31. }
  32.  
  33. if (rgb == 255 && rgb2 === 255 && rgb3 === 0){
  34. rgbitmin = true;
  35. }
  36. if(rgbitmin === true){
  37. --rgb;
  38. if(rgb <= 0){
  39. rgbitmin = false;
  40. }
  41. }
  42.  
  43. if (rgb === 0 && rgb2 == 255 && rgb3 === 0){
  44. rgb3it = true;
  45. }
  46. if(rgb3it === true){
  47. rgb3++;
  48. if(rgb3 >= 255){
  49. rgb3it = false;
  50. }
  51. }
  52.  
  53. if (rgb === 0 && rgb2 === 255 && rgb3 == 255){
  54. rgb2itmin = true;
  55. }
  56. if(rgb2itmin === true){
  57. --rgb2;
  58. if(rgb2 <= 0){
  59. rgb2itmin = false;
  60. }
  61. }
  62. if (rgb === 0 && rgb2 === 0 && rgb3 == 255){
  63. rgbit = true;
  64. }
  65. if(rgbit === true){
  66. rgb++;
  67. if(rgb >= 255){
  68. rgbit = false;
  69. }
  70. }
  71. if (rgb == 255 && rgb2 === 0 && rgb3 == 255){
  72. rgb3itmin = true;
  73. }
  74. if(rgb3itmin === true){
  75. --rgb3;
  76. if(rgb3 <= 0){
  77. rgb3itmin = false;
  78. }
  79. }
  80.  
  81. setTimeout(cooler, speed);
  82.  
  83. document.getElementById("r").innerHTML = rgb;
  84. document.getElementById("g").innerHTML = rgb2;
  85. document.getElementById("b").innerHTML = rgb3;
  86.  
  87. toto = [rgb, rgb2, rgb3];
  88. kolor = [];
  89. kolor.push("rgb(" + rgb + "," + rgb2 + "," + rgb3 + ")");
  90.  
  91. //ctx.fillStyle = "rgb("toto[0]+","+toto[1]+","+toto[2]+");";
  92. document.getElementById("kolor").style.background = "rgb(" + rgb + "," + rgb2 + "," + rgb3 + ")";
  93.  
  94. var a = 20;
  95. var rH = 70;
  96. var rX = 15;
  97.  
  98. for (i = 0; i < 10; i++){
  99. a += 20;
  100. ctx.fillStyle = kolor[i];
  101. ctx.fillRect(a, 10, rX, rH+i*2);
  102. }
  103.  
  104. };
  105.  
  106. }
  107.  
  108. rysuj();
[JAVASCRIPT] pobierz, plaintext






Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rafkon1990
post
Post #2





Grupa: Zarejestrowani
Postów: 37
Pomógł: 9
Dołączył: 14.09.2016
Skąd: Śląskie

Ostrzeżenie: (0%)
-----


zdaje się że w pętli nic nie zmieniasz stąd też taki efekt

czy chodzi ci o taki efekt?

Kod
Edit in JSFiddle
JavaScript
HTML
CSS
Result
function rysuj(){
  draw();
  cooler();
}

function draw(){
var canvas = document.getElementById("canvas");

var ctx = canvas.getContext("2d");
var dec = 9;
var paskow = 10;
var limit = 255-(dec*paskow);
var r = limit;
var g = 0;
var b = 0;
var rit = false;
var ritmin = false;
var git = false;
var gitmin = false;
var bit = false;
var bitmin = false;
var speed = 20;
  
this.cooler = function(){

if (r == limit && g === 0 && b === 0){
  git = true;
}
  if(git === true){
  g++;
    if(g >= limit){
      git = false;
    }
  }
  
if (r == limit && g === limit && b === 0){
  ritmin = true;
}
  if(ritmin === true){
    --r;
    if(r <= 0){
      ritmin = false;
    }
  }
  
if (r === 0 && g == limit &&  b === 0){
  bit = true;
}
  if(bit === true){
  b++;
    if(b >= limit){
      bit = false;
    }
  }

if (r === 0 && g === limit && b == limit){
  gitmin = true;
}
  if(gitmin === true){
    --g;
    if(g <= 0){
      gitmin = false;
    }
  }
if (r === 0 && g === 0 &&  b == limit){
  rit = true;
}
  if(rit === true){
  r++;
    if(r >= limit){
      rit = false;
    }
  }
if (r == limit && g === 0 && b == limit){
  bitmin = true;
}
  if(bitmin === true){
    --b;
    if(b <= 0){
      bitmin = false;
    }
  }
  
  setTimeout(cooler, speed);
  
  document.getElementById("r").innerHTML = r;
  document.getElementById("g").innerHTML = g;
  document.getElementById("b").innerHTML = b;
  

  document.getElementById("kolor").style.background = rgb;
  
  var a = 20;
  var rH = 70;
  var rX = 15;

  for (i = 0; i < paskow; i++){
  a += 20;
  var rgb = ("rgb(" + (r+i*dec) + "," + (g+i*dec) + "," + (b+i*dec) + ")");
   document.getElementById("kolor").style.background = rgb;
  ctx.fillStyle = rgb
  document.getElementById("rgb").innerHTML = rgb;
  ctx.fillRect(a, 10, rX, rH+i*2);
  }

};
  
}

rysuj();

var dec = 9;
POLSKI
var grudnia = 9;
OPCJE ROZSZERZEŃWIĘCEJ »


Ten post edytował rafkon1990 9.11.2016, 09:34:13
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 20:25