Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用从后端/API获得的特定坐标绘制矩形?_Javascript_Html_Canvas - Fatal编程技术网

Javascript 如何使用从后端/API获得的特定坐标绘制矩形?

Javascript 如何使用从后端/API获得的特定坐标绘制矩形?,javascript,html,canvas,Javascript,Html,Canvas,在我有图像的背景中,这里我需要使用图像上的特定坐标(它们来自API)绘制一个矩形。 如何动态绘制,因为坐标不断变化 我尝试过使用canvas、svg,但都不起作用。上一个问题的链接 科迪酸盐: var a = _self.sendObjCoordinates[0].coordinates.xmin; var b = _self.sendObjCoordinates[0].coordinates.ymin; var c = _self.sendOb

在我有图像的背景中,这里我需要使用图像上的特定坐标(它们来自API)绘制一个矩形。 如何动态绘制,因为坐标不断变化

我尝试过使用canvas、svg,但都不起作用。上一个问题的链接

科迪酸盐:

        var a = _self.sendObjCoordinates[0].coordinates.xmin;
        var b = _self.sendObjCoordinates[0].coordinates.ymin;
        var c = _self.sendObjCoordinates[0].coordinates.xmax;
        var d  = _self.sendObjCoordinates[0].coordinates.ymax;
样本值:

     {xmin: 399, ymin: 191, xmax: 1166, ymax: 742}
1) 加载图像的代码:

<div class="lbi-svg-box scrollbar-external">
    <img src=""  alt="" class="lbi-img"  />
    <svg class="lbi-svg">
    </svg>  
</div>
3) 创建rect的代码:

var can = document.getElementById("CursorLayer");

                var ctx = can.getContext('2d');
                ctx.fillStyle='#fa4b2a';    // color of fill
                ctx.rect(20, 20, 150, 100);
                ctx.stroke(); // create rectangle  

您试图在画布上绘制矩形的时间 使用getElementyById()函数获取对画布的引用。 不幸的是,它将返回null,因为您实际上没有将画布添加到DOM中-因此它不存在,您将得到:

无法读取null的属性“getContext”

将动态创建的HTML元素添加到DOM是通过appendChild()函数完成的

尝试更改:

var canvas = document.createElement('canvas');
致:


您试图在画布上绘制矩形的时间 使用getElementyById()函数获取对画布的引用。 不幸的是,它将返回null,因为您实际上没有将画布添加到DOM中-因此它不存在,您将得到:

无法读取null的属性“getContext”

将动态创建的HTML元素添加到DOM是通过appendChild()函数完成的

尝试更改:

var canvas = document.createElement('canvas');
致:


“它不起作用”不是诊断。什么不起作用?你的错误是什么?分享你的代码向我们展示你试图在画布上绘制数据的代码@Madhu@obscure请查看更新的代码。@DaveNewton请指示我。“它不起作用”不是诊断。什么不起作用?你的错误是什么?分享你的代码向我们展示你试图在画布上绘制数据的代码@Madhu@obscure请看一下更新的代码。@DaveNewton请告诉我。
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);