p5.jsでベクトルクラスと線分クラスを用いて三角形を描写したいのですが、Uncaught TypeError: Cannot read property 'x' of undefined (sketch: line 64)
というエラーメッセージが出ます。
p5
1class Vec2{ 2 /** 3 @param {number} x 4 @param {number} y 5 **/ 6 constructer(x,y){ 7 this.x = x; 8 this.y = y; 9 } 10 /** 11 @param {Vec2} b 12 **/ 13 add(b){ 14 let a = this; 15 return new Vec2(a.x+b.x,a.y+b.y); 16 } 17 sub(b){ 18 let a = this; 19 return new Vec2(a.x-b.x,a.y-b.y); 20 } 21} 22 23class Ray2{ 24 /** 25 @param {Vec2} pos このレイの始点ベクトル 26 @param {Vec2} way このレイの始点から伸びる方向ベクトル 27 **/ 28 constructer(pos,way){ 29 this.pos = pos; 30 this.way = way; 31 } 32 /** 33 @param {Vec2} begin 34 @param {Vec2} end 35 **/ 36 static with2p(begin,end){ 37 return new Ray2(begin,end.sub(begin)); 38 } 39 //線分の始点 40 get begin(){ 41 return this.pos; 42 } 43 //線分の終点 44 get end(){ 45 return this.pos.add(this.way); 46 } 47} 48 49function setup() { 50 createCanvas(640, 360); 51} 52 53function draw() { 54 background(60); 55 strokeWeight(3); 56 stroke('white'); 57 58 let walls = [ 59 Ray2.with2p(new Vec2(50,50),new Vec2(100,300)), 60 Ray2.with2p(new Vec2(100,300),new Vec2(100,300)), 61 Ray2.with2p(new Vec2(250,200),new Vec2(50,350)), 62 ]; 63 64 for(let wall of walls){ 65 line(wall.begin.x,wall.begin.y,wall.end.x,wall.end.y); 66 } 67 68 /** 69 line(50,50,100,300); 70 line(100,300,250,200); 71 line(250,200,50,50); 72 これと同じ結果 73 **/ 74 75}
どの様に修正すれば三角形を描写できるでしょうか?
回答をお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/26 14:04