Javascript 卡纳夫并没有画出所有的点。只有一个出现了

Javascript 卡纳夫并没有画出所有的点。只有一个出现了,javascript,html,Javascript,Html,在这个脚本中,我试图用两个点/圆来创建一个坐标平面。当我在代码中添加第二个点时,它只显示第二个点 带点的部分是这段代码: 点(AX,AY,false,'red',6) 点(BX、BY、false、red、6) 有人能帮我解决这个问题吗?非常感谢 start(); 函数start(){ console.clear(); document.getElementById(“画布”); var ctx=canvas.getContext(“2d”); var AX=document.getEleme

在这个脚本中,我试图用两个点/圆来创建一个坐标平面。当我在代码中添加第二个点时,它只显示第二个点

带点的部分是这段代码:

点(AX,AY,false,'red',6)
点(BX、BY、false、red、6)
有人能帮我解决这个问题吗?非常感谢

start();
函数start(){
console.clear();
document.getElementById(“画布”);
var ctx=canvas.getContext(“2d”);
var AX=document.getElementById(“AX”).value;
var AY=document.getElementById(“AY”).value;
var BX=document.getElementById(“BX”).value;
var BY=document.getElementById(“BY”).value;
变量平方_大小=30;
var XSCALE=1;
var YSCALE=1;
var centerX=0;
var centerY=0;
选定=[];
点数=[];
行=[];
段=[];
历史=[];
圆圈=[];
功能点(x,y,isSelected,color,r){
这个.x=x;
这个。y=y;
这个颜色=颜色;
这个。r=r;
this.add=函数(){
绘图点(this.x、this.y、this.color、this.r);
};
点。推(这个);
如果(当选){
选中。推送(此);
}
此距离=功能(gx,gy){
返回Math.sqrt(Math.pow(this.x-gx,2)+Math.pow(this.y-gy,2));
};
}
函数点1(x,y,isSelected,color,r){
这个.x=x;
这个。y=y;
这个颜色=颜色;
这个。r=r;
this.add=函数(){
绘图点(this.x、this.y、this.color、this.r);
};
点。推(这个);
如果(当选){
选中。推送(此);
}
此距离=功能(gx,gy){
返回Math.sqrt(Math.pow(this.x-gx,2)+Math.pow(this.y-gy,2));
};
}
函数圆(x、y、颜色、r){
这个.x=x;
这个。y=y;
这个颜色=颜色;
这个。r=r;
this.add=函数(){
ctx.beginPath();
弧(convertX(x),convertY(y),r,0,2*Math.PI);
ctx.stroke();
};
}
功能线(m、b、颜色、宽度){
这个,m=m;
这个.b=b;
这个颜色=颜色;
这个。宽度=宽度;
推(这个);
}
功能段(a、b、颜色、宽度){
这个a=a;
这个.b=b;
这个颜色=颜色;
这个。宽度=宽度;
this.getSlope=函数(){
报税表(b.y-a.y)/(b.x-a.x);
};
this.getIntercept=函数(){
var m=this.getSlope();
返回a.y-m*a.x;
};
this.getLength=函数(){
返回Math.sqrt(this.a.x-this.b.x+this.a.y-this.b.y);
};
此距离=功能(gx,gy){
//var m=(b.y-a.y)/(b.x-a.x)
//var bb=a.y-m*a.x
var m=this.getSlope();
var bb=this.getIntercept();
var pim=1/-m;
var pib=gy-pim*gx;
如果(m==0){
pix=gx;
piy=这个.a.y;
}else if(数学绝对值(m)==无穷大){
var pix=这个.a.x;
var piy=gy;
}否则{
var-pix=(pib-bb)/(m-pim);/((gy-(gx/m)-bb)*m)/(m*m-1)
var piy=pim*pix+pib;
}
//控制台日志(“m:+m+”pim:+pim+”pib:+pib+“pix”+pix+“piy:+piy”)
如果(

((此.a.x在创建点时,应使用
new
关键字:

new point(AX, AY, false, 'red', 6)
new point(BX, BY, false, 'red', 6)
它会创建point的新实例,但不会覆盖它,因为它在代码中起作用