Javascript 如何绘制隐式函数?

Javascript 如何绘制隐式函数?,javascript,math,plot,implicit,Javascript,Math,Plot,Implicit,我正在尝试开发一个隐式绘图仪。 例如,如果我想画一个寓言,x将变化,y将被计算为相应的x值 var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); ctx.beginPath(); // y = (x-5)*(x-5

我正在尝试开发一个隐式绘图仪。
例如,如果我想画一个寓言,x将变化,y将被计算为相应的x值

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');


ctx.beginPath();

// y = (x-5)*(x-5) 

var iPoints=20,
nY=0;

for (var x=-10; x<=iPoints; x++) {
    nY = ( (x-5)*(x-5) );
    ctx.lineTo(200-x, 300-nY);
}
ctx.stroke();
var canvas=document.getElementById(“canvas”);
var ctx=canvas.getContext(“2d”);
var canvas=document.getElementById('canvas');
var ctx=canvas.getContext('2d');
ctx.beginPath();
//y=(x-5)*(x-5)
var iPoints=20,
nY=0;
对于(var x=-10;x绘制
f(x,y)=0
,使用以下方法:

  • 把你的区域划分成一个小格子

  • 计算每个单元格顶点处的
    f
    符号

  • 查找曲线与单元格相交的位置:在具有不同符号的边上。使用线性插值查找相交点,并将它们与线段连接在一起


    • 这不是最好的方法,也不是最快的方法。但有一个简单的方法可以完成:

      // x^2 + y^2 = 25^2
      for (var x=-30; x<=+30; x+=0.01) {
        var smallest=1e10;
        var best_y=0;
        for (var y=-30; y<=+30; y+=0.01) {
          var v=Math.abs(x*x+y*y-625);
          if(v<smallest) {smallest=v;best_y=y;}
        }
        if(smallest<0.1) {
          ctx.fillRect(100+x, 100-best_y,1,1);
        }
      }
      
      //x^2+y^2=25^2
      
      对于(var x=-30;x)感谢答案。它同时改变x和y。也许我会使用“moveTo”和“lineTo”来代替“fillRect”。感谢答案。是的,我明白了,不幸的是,在“隐式函数”的情况下,没有“线性插值”和“行进方块”,绘制的曲线通常会被虚线。我还在编写“隐式函数”程序.但不幸的是失败了。在我看来,你似乎有一个线索。你能更详细地描述一下你的解决方案吗。也许你想看看我的方法,它已经失败了。在此也提前感谢你。