Anders and Briegel in Python
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

50 строки
1.5KB

  1. var graph = {};
  2. graph.colors = ["red", "green", "yellow", "blue", "pink", "orange", "purple"];
  3. graph.hook = function() {
  4. materials.load();
  5. websocket.connect(graph.update);
  6. };
  7. graph.update = function(json) {
  8. anders_briegel.vops = json.vops;
  9. anders_briegel.ngbh = json.ngbh;
  10. anders_briegel.meta = json.meta;
  11. graph.updateScene();
  12. };
  13. graph.updateScene = function() {
  14. var oldState = scene.getObjectByName("graphstate");
  15. scene.remove(oldState);
  16. oldState = null;
  17. var geometry = new THREE.Geometry();
  18. for (var i in abj.vops) {
  19. var vop = abj.vops[i];
  20. var pos = abj.meta[i].position;
  21. var vertex = new THREE.Vector3(pos.x, pos.y, pos.z);
  22. geometry.vertices.push(vertex);
  23. geometry.colors[i] = new THREE.Color(colors[abj.vops[i] % colors.length]);
  24. }
  25. var edges = new THREE.Object3D();
  26. var my_edges = abj.edgelist();
  27. for (i = 0; i < my_edges.length; ++i) {
  28. var edge = my_edges[i];
  29. var start = abj.meta[edge[0]].position;
  30. var startpos = new THREE.Vector3(start[0], start[1], start[2]);
  31. var end = abj.meta[edge[1]].position;
  32. var endpos = new THREE.Vector3(end[0], end[1], end[2]);
  33. var newEdge = makeCurve(startpos, endpos);
  34. edges.add(newEdge);
  35. }
  36. var particles = new THREE.Points(geometry, materials.qubit);
  37. var newState = new THREE.Object3D();
  38. newState.name = "graphstate";
  39. newState.add(particles);
  40. newState.add(edges);
  41. scene.add(newState);
  42. render();
  43. };