Guest User

Untitled

a guest
Oct 22nd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. var res = 10
  2. var grid_X
  3. var grid_Y
  4.  
  5. function setup() {
  6. createCanvas(700, 700);
  7.  
  8. grid_X = new Array(width / res);
  9. grid_Y = new Array(width / res);
  10. for (var i = 0; i < width / res; i++) {
  11. grid_X[i] = new Array(height / res);
  12. grid_Y[i] = new Array(height / res);
  13. }
  14. c1 = new Charge(100, 200, 30)
  15. c2 = new Charge(600, 500, -20)
  16.  
  17. vectorGrid()
  18. }
  19.  
  20. function draw() {
  21. background(220);
  22. drawGrid()
  23. c1.display()
  24. c2.display()
  25. drawLines()
  26.  
  27.  
  28. }
  29.  
  30.  
  31.  
  32. function Charge(x, y, v) {
  33. this.x = x
  34. this.y = y
  35. this.v = v
  36.  
  37.  
  38. this.display = function() {
  39. if (this.v > 0) {
  40. fill(255, 0, 0, 100);
  41. } else if (this.v < 0) {
  42. fill(0, 0, 255, 100);
  43. }
  44. stroke(0);
  45. strokeWeight(1);
  46. ellipse(this.x, this.y, 15, 15);
  47. }
  48. }
  49.  
  50. function drawGrid() {
  51. stroke(0, 50)
  52. for (var i = 0; i < width; i += 20) {
  53. line(0, i, width, i)
  54. line(i, 0, i, height)
  55.  
  56. }
  57. }
  58.  
  59. function vectorGrid() {
  60. //print("Vector grid")
  61. var x1 = 0;
  62. for (var i = 0; i < height / res; i++) {
  63. for (var j = 0; j < height / res; j++) {
  64. x = res / 2 + i * res
  65. y = res / 2 + j * res
  66. dx = x - c1.x;
  67. dy = y - c1.y;
  68. d1 = sqrt(dx * dx + dy * dy);
  69. E1 = c1.v / (d1 * d1);
  70. E1x = dx * E1 / d1;
  71. E1y = dy * E1 / d1;
  72.  
  73. dxn = x - c2.x;
  74. dyn = y - c2.y;
  75. d2 = sqrt(dxn * dxn + dyn * dyn);
  76. E2 = c2.v / (d2 * d2);
  77. E2x = dxn * E2 / d2;
  78. E2y = dyn * E2 / d2;
  79.  
  80. EEx = E1x + E2x;
  81. EEy = E1y + E2y;
  82. EE = sqrt(EEx * EEx + EEy * EEy);
  83.  
  84. deltax = 15 * EEx / EE;
  85. deltay = 15 * EEy / EE;
  86. grid_X[i][j] = deltax
  87. grid_Y[i][j] = deltay
  88.  
  89.  
  90.  
  91. }
  92.  
  93. }
  94. }
  95.  
  96.  
  97. function drawLines() {
  98.  
  99.  
  100. for (var i = 0; i < 5000; i++) {
  101.  
  102.  
  103. x = random(width);
  104. var xf = floor(x / (res));
  105. y = random(height);
  106. var yf = floor(y / (res));
  107.  
  108. stroke(0, 70)
  109. line(x, y, x + grid_X[xf][yf], y + grid_Y[xf][yf])
  110.  
  111.  
  112. }
  113. }
Add Comment
Please, Sign In to add comment