Anders and Briegel in Python
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

materials.js 1.1KB

8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
8 yıl önce
123456789101112131415161718192021222324252627282930313233343536
  1. var materials = {};
  2. var curveProperties = {
  3. splineDensity: 1,
  4. curvature: 20
  5. };
  6. // Is called on boot
  7. materials.prepare = function() {
  8. var ballSprite = new THREE.Texture(document.getElementById("ball"));
  9. ballSprite.needsUpdate = true;
  10. materials.edge = new THREE.LineBasicMaterial({
  11. color: "gray",
  12. transparent: false,
  13. linewidth: 2
  14. });
  15. materials.qubit = new THREE.PointsMaterial({
  16. size: 0.3,
  17. map: ballSprite,
  18. alphaTest: 0.5,
  19. transparent: true,
  20. vertexColors: THREE.VertexColors
  21. });
  22. };
  23. materials.makeCurve = function(a, b) {
  24. var length = new THREE.Vector3().subVectors(a, b).length();
  25. var bend = new THREE.Vector3(length / curveProperties.curvature, length / curveProperties.curvature, 0);
  26. var mid = new THREE.Vector3().add(a).add(b).multiplyScalar(0.5).add(bend);
  27. var spline = new THREE.CatmullRomCurve3([a, mid, b]);
  28. var geometry = new THREE.Geometry();
  29. var splinePoints = spline.getPoints(curveProperties.splineDensity);
  30. Array.prototype.push.apply(geometry.vertices, splinePoints);
  31. return new THREE.Line(geometry, materials.edge);
  32. };