• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Generowanie koloru na losowym obiekcie

Object Storage Arubacloud
0 głosów
344 wizyt
pytanie zadane 24 marca 2016 w JavaScript przez niezalogowany

Dobry. Mam sobie kwadraciki 3x3x3 (kostka rubika) i domyślnie kolor jaki ustawiłem przy generacji każdego z nich to czarny z opacity: 0.3. I teraz chciałbym wygenerować dla 10 losowych kwadracików (w położeniu X, Y, Z) inny kolor. Niby mam tablicę i mam wektory, ale nie potrafię ogarnąć logiki takiej funkcji. Za każdy tip byłbym wdzięczny :)

var camera, controls, mesh, scene, renderer, helper,
            MeshBasicMaterial=new THREE.MeshBasicMaterial({
                color: 0x000000,
                opacity: 0.3,
                transparent: true
            });
var BoxGeometry = new THREE.BoxGeometry(16, 16, 16);

var meshArrayX = [];
        for (var x=0; x<3; x++) {
            var meshArrayY = [meshArrayX.push(mesh = new THREE.Mesh(BoxGeometry, MeshBasicMaterial))];
            for(var y=0; y<3; y++){
                var meshArrayZ = [meshArrayY.push(mesh = new THREE.Mesh(BoxGeometry, MeshBasicMaterial))];
                for(var z=0; z<3; z++){
                    meshArrayZ.push(mesh = new THREE.Mesh(BoxGeometry, MeshBasicMaterial));
                    mesh.position.x = 16*x;
                    mesh.position.y = 16*y;
                    mesh.position.z = 16*z;
                    scene.add(mesh);


                    console.log(meshArrayX.length, meshArrayY.length-1, meshArrayZ.length-1, mesh.position);
                    }
                }
            }
        color(mesh)

function random(){
        var random = [0, 16, 32];
        var randomValue = random[Math.floor(random.length * Math.random())];
        console.log(randomValue);
    }

    function color(selector){
        for(var v=0; v<10; v++){
            selector.position.x = random();
            selector.position.y = random();
            selector.position.z = random();
            selector.material.color.setHex(0x0000ff);
        }
    }

 

1 odpowiedź

0 głosów
odpowiedź 24 marca 2016 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 24 marca 2016
 
Najlepsza

Zerknij na mój kod w tym temacie:

http://forum.pasja-informatyki.pl/118641/bot-javascript?show=118641#q118641

Zastąp sobie tablicę słówek, tablicą swoich pół (obiektów) i po prostu w pętli wywołuj Math.random() na tablicy obiektów - niech program losuje 1 obiekt z tej tablicy.

[edit]

No masz funkcję do losowania. W 31 linijce (zamiast console.log()) zapisz return randomValue; Wtedy w funkcji color() w pętli będzie Ci tą losową wartość podstawiać pod pozycje x/y/z.

Próbowałeś tak zrobić, czy problem leży gdzie indziej?

komentarz 24 marca 2016 przez niezalogowany
Aha, rzeczywiście zapomniałem o tym return'ie x)

Podobne pytania

+2 głosów
1 odpowiedź 190 wizyt
pytanie zadane 12 stycznia 2023 w JavaScript przez Czang Kai Shrek Obywatel (1,990 p.)
0 głosów
3 odpowiedzi 717 wizyt

92,762 zapytań

141,686 odpowiedzi

320,497 komentarzy

62,106 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...