2013-01-06 11 views
15

में घन का रंग बदलना मैं एक चर के आधार पर घन के रंग को बदलने की कोशिश कर रहा हूं। मैंने दो cubes बनाए और मैं उनके बीच की दूरी के आधार पर अपना रंग बदलना चाहता हूं।तीन.जेएस

क्यूब्स इस तरह बनाए जाते हैं:

geometry = new THREE.CubeGeometry(50, 50, 50); 
material = new THREE.MeshBasicMaterial({ color: 0xff0000, wireframe: true }); 
cube = new THREE.Mesh(geometry, material); 
scene.add(cube); 

अब मैं कुछ इस तरह की कोशिश की:

if(distance > 20) 
{ 
cube.material.color = 0xffffff; 
} 

लेकिन यह काम नहीं करता। मैंने उदाहरणों में देखा लेकिन कुछ भी उचित नहीं मिला।

उत्तर

50

आप रंग मूल्य सही ढंग से निर्दिष्ट नहीं कर रहे हैं।

http://threejs.org/docs/#Reference/Math/Color

जो तरीकों आप रंग सेट करने के लिए उपयोग कर सकते का एक समूह है:

cube.material.color.setHex(0xffffff); 
+1

तुम भी आधार -10 पूर्णांक बराबर setHex के लिए पैरामीटर के रूप में उपयोग कर सकते हैं के आधार पर दो जे एस में समानता है। – andrewb

6
cube.material.color 

आप THREE.Color वस्तु दे देंगे।

+2

उस लिंक के मामले में उत्तर में वास्तविक विधि की आवश्यकता है। – andrewb

+0

लिंक की मृत्यु हो गई, सही जवाब color.set(), 'cube.material.color.set (रंग)' –

1

मेरा सुझाव आपके ऑब्जेक्ट पर एक फ़ंक्शन संलग्न करता है और फिर आप आसानी से रनटाइम के दौरान ऑब्जेक्ट का रंग बदल सकते हैं।
, अपने कोड

geometry = new THREE.CubeGeometry(50, 50, 50); 
material = new THREE.MeshBasicMaterial({ color: 0xff0000, wireframe: true }); 
cube = new THREE.Mesh(geometry, material); 

//here is the funcion defined and attached to the object 
cube.setColor = function(color){ 
    cube.material.color = new THREE.Color(color); 
} 


cube.setColor(0xFFFFFF) //change color using hex value or 
cube.setColor("blue") //set material color by using color name 

scene.add(cube); 
+1

नया 'रंग' को तुरंत चालू न करें। 'Cube.material.color.set (रंग) 'का प्रयोग करें। – WestLangley

संबंधित मुद्दे