Javascript 在jsx图形中是否可以绘制复杂函数图?

Javascript 在jsx图形中是否可以绘制复杂函数图?,javascript,jsxgraph,Javascript,Jsxgraph,假设有人试图在jsx图形中将复值函数$f:\mathhbb{C}\to\mathhbb{C}$绘制为$f(z)=z$。它可能不像表面上那样复杂。我们需要的是两个相连的平面。域平面中的点(x,y)映射到余域平面中的点(x,y)。当一个人拖动域平面上的点时,相应的变化发生在同域平面上的点上。所以唯一的问题是如何连接两个平面。这只是两个维度的问题。如果可以向jsx图中添加类似于以下内容的内容,那么这将是对jsx图的一个很好的添加。然后可以研究复值函数的许多性质。 这里是链接。 两块板board1,bo

假设有人试图在jsx图形中将复值函数$f:\mathhbb{C}\to\mathhbb{C}$绘制为$f(z)=z$。它可能不像表面上那样复杂。我们需要的是两个相连的平面。域平面中的点(x,y)映射到余域平面中的点(x,y)。当一个人拖动域平面上的点时,相应的变化发生在同域平面上的点上。所以唯一的问题是如何连接两个平面。这只是两个维度的问题。如果可以向jsx图中添加类似于以下内容的内容,那么这将是对jsx图的一个很好的添加。然后可以研究复值函数的许多性质。 这里是链接。
两块板
board1
board2
可以与
board1.addChild(board2)
连接。这意味着,
board1
中的每次更新都会触发
board2
中的更新。 以下是一个基本示例,请参见:

更新对第一条评论的回复:在复杂平面中可视化共形贴图可以通过将贴图应用于四边形来完成。有必要通过曲线定义四边形的边:

var p0 = board1.create('point', [2, -2]);
var p1 = board1.create('point', [2, 2]);
var p2 = board1.create('point', [-2, 2]);
var p3 = board1.create('point', [-2, -2]);

// Draw the quadrangle through p0, p1, p2, p3 as curve
// defined by [fx, fy]
var fx = function(x) {
    if (x < 0 || x > 4) { return NaN; }
    if (x < 1) {
        return (p1.X() - p0.X()) * x + p0.X();
    } else if (x < 2) {
        return (p2.X() - p1.X()) * (x - 1) + p1.X();
    } else if (x < 3) {
        return (p3.X() - p2.X()) * (x - 2) + p2.X();
    } else if (x < 4) {
        return (p0.X() - p3.X()) * (x - 3) + p3.X();
    }
  };

var fy = function(x) {
    if (x < 0 || x > 4) { return NaN; }
    if (x < 1) {
        return (p1.Y() - p0.Y()) * x + p0.Y();
    } else if (x < 2) {
        return (p2.Y() - p1.Y()) * (x - 1) + p1.Y();
    } else if (x < 3) {
        return (p3.Y() - p2.Y()) * (x - 2) + p2.Y();
    } else if (x < 4) {
        return (p0.Y() - p3.Y()) * (x - 3) + p3.Y();
    }
  };

var graph1 = board1.create('curve', [fx, fy, 0, 4]);

完整的mathlet位于

,因为jxsgraph是一个可以进行交互式图形的库,所以您的标题中的问题的答案几乎肯定是“是”(当然可能并不意味着容易)。剩下的问题看起来更像是一个面向jsxgraph创建者的功能请求,而不是一个实际的问题?我的意思是两个平面上都有相互对应的矩形区域(而不是点)?我不知道为什么这个问题会被否决。
var p0 = board1.create('point', [2, -2]);
var p1 = board1.create('point', [2, 2]);
var p2 = board1.create('point', [-2, 2]);
var p3 = board1.create('point', [-2, -2]);

// Draw the quadrangle through p0, p1, p2, p3 as curve
// defined by [fx, fy]
var fx = function(x) {
    if (x < 0 || x > 4) { return NaN; }
    if (x < 1) {
        return (p1.X() - p0.X()) * x + p0.X();
    } else if (x < 2) {
        return (p2.X() - p1.X()) * (x - 1) + p1.X();
    } else if (x < 3) {
        return (p3.X() - p2.X()) * (x - 2) + p2.X();
    } else if (x < 4) {
        return (p0.X() - p3.X()) * (x - 3) + p3.X();
    }
  };

var fy = function(x) {
    if (x < 0 || x > 4) { return NaN; }
    if (x < 1) {
        return (p1.Y() - p0.Y()) * x + p0.Y();
    } else if (x < 2) {
        return (p2.Y() - p1.Y()) * (x - 1) + p1.Y();
    } else if (x < 3) {
        return (p3.Y() - p2.Y()) * (x - 2) + p2.Y();
    } else if (x < 4) {
        return (p0.Y() - p3.Y()) * (x - 3) + p3.Y();
    }
  };

var graph1 = board1.create('curve', [fx, fy, 0, 4]);
// Conformal complex map z -> 1/z
var map = function(x, y) {
    var s = x*x+y*y;
    return [x / s, -y/s];
};

// Draw the image of the quadrangle under the map
f2x = function(x) {
    return map(fx(x), fy(x))[0];
};

f2y = function(x) {
    return map(fx(x), fy(x))[1];
};

var graph2 = board2.create('curve', [f2x, f2y, 0, 4]);