Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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 为什么我的线没有画在画布上?_Javascript_Jquery_Json_Html_Canvas - Fatal编程技术网

Javascript 为什么我的线没有画在画布上?

Javascript 为什么我的线没有画在画布上?,javascript,jquery,json,html,canvas,Javascript,Jquery,Json,Html,Canvas,作为后续工作,我在绘制实际画布时遇到了一个问题。如果我将每个JSON对象项回显到控制台,它将返回与该项关联的值,并且我没有收到任何错误,因此根据我前面的问题,我知道我正在成功读取JSON文件。那么,为什么画布上什么都没有 JS $(document).ready(function(){ var canvas = document.getElementById("schematic_holder"); var ctx = canvas.getContext("2d");

作为后续工作,我在绘制实际画布时遇到了一个问题。如果我将每个JSON对象项回显到控制台,它将返回与该项关联的值,并且我没有收到任何错误,因此根据我前面的问题,我知道我正在成功读取JSON文件。那么,为什么画布上什么都没有

JS

$(document).ready(function(){
    var canvas = document.getElementById("schematic_holder");
    var ctx = canvas.getContext("2d");

    $.ajax({
        type: "GET",
        dataType: "json",
        url: "js/app/json/nst.json",
        success: function(result){
            var x1 = result[0].line.x1;
            var y1 = result[0].line.y1;
            var x2 = result[0].line.x2;
            var y2 = result[0].line.x2;
            var width = result[0].line.width;
            var stroke = result[0].line.stroke;
            console.log(x2);
            ctx.beginPath();
            ctx.moveTo(x1, y1);
            ctx.lineTo(x2, y2);
            ctx.lineWidth = width;
            ctx.strokeStyle = stroke;
            ctx.stroke();
        },
        complete: function(){
            console.log("Complete!");
        }
    })
})
JSON

[{
    "line": {
        "width": 3,
        "stroke": "#000000",
        "x1": 640.386,
        "y1": 258.163,
        "x2": 816.364,
        "y2": 258.163
    }   
}]

我创建了一个简单的文本案例,看起来你没有做错什么


我猜您的画布太小或不可见。

您应该删除ajax,以简化调试。@ChadScira您的意思是问题中的ChadScira,对吗?关于
ctx.fill()
完成这一切吗?@dojs不是矩形的填充物吗?嗯,奇怪,我的显示器是2265px 1483px,我把画布做成了同样的大小,但它仍然没有显示出来。我让画布可见,我确保它的背景颜色与其他颜色不同。这很奇怪
canvas.width = canvas.height = 1000;