【问题标题】:does anyone know why my code, specifically the javascript wont run?有谁知道为什么我的代码,特别是 javascript 无法运行?
【发布时间】:2015-11-09 17:09:58
【问题描述】:

我的代码似乎没有运行,它说我的 javascript 的第 15 行(即 for 循环)有一个意外的令牌。

<!DOCTYPE html>
<head>
    <title> Lab 7 Part 2 </title>
    <meta charset="UTF-8"/>
    <canvas id= "drawingSurface"
           style="border-style: solid"
           width= "500" height="500"></canvas>
    <script src ="lab7b.js"></script>
</head>
<body onload= "setup();">
    <h1> Cat Mover </h1>

<input id ="up" type ="button" value="Up" onclick="upHandler()" >

<input id ="down" type ="button" value="Down" onclick="downHandler()">


<input id ="left" type ="button" value="Left" onclick="leftHandler()">


<input id ="right" type ="button" value="Right" onclick="rightHandler()">


<input id ="reset" type ="button" value="Reset" onclick="resetHandler()">
<section id="output">Move The Cat!<section>
</body>

我的 javascript 文件似乎无法正常工作,有人可以帮帮我吗?

var N, M, r;
var drawSurface;
var ctx;
var coordinates;

function setup(){
drawSurface= document.getElementById("drawingSurface");
ctx = drawSurface.getContext("2d");
ctx.translate(300,300);
}

function GenerateXY(M,N,r){
    coordinates = [[10,10],[[20,20]]

    for(var i = 0; i ,= M; i += 1;){
        var r2 = Math.abs(sin(angle*N/2));
        var x = r2*Math.sin(angle);
        var y = r2*Math.cos(angle);

        coordinates(i) = [x,y];

    }
    return coordinates;
}

function drawShape(){
    var numPetals = document.getElementById("text1").value;
    var numPoints = document.getElementById("text2").value;
    coordinates = getCoordinates(numPetals,NumPoints, 300);
    draw(coordinates);      
}

function draw(list){
    ctx.beginPath();
    for(var i = 0; i < list.length, i+= 1){
        ctx.lineTo(list[i][0], list[i][1]);
    }
    ctx.stroke();
}

如果你发现问题,你能指出来,让我知道是否有问题以及为什么会出错

【问题讨论】:

  • angle 是什么?没有被定义就突然冒出来。
  • 应该是var r2 = Math.abs(sin(angle*N/2)); 而不是这个var r2 = Math.abs(Math.sin(angle*N/2)); ...?
  • 你的意思是这部分:for(var i = 0; i ,= M; i += 1;){?你的意思是i &lt;= M
  • i ,= M; 有效吗?不知道有什么类似的表达方式。

标签: javascript html arrays


【解决方案1】:
[[10,10],[[20,20]] 
         ^^

删除一个 [

[[10,10],[20,20]]

【讨论】:

    【解决方案2】:

    您的顶部 for 循环中有两个语法错误。我猜,= 应该是&lt;=。您可能希望在索引i 处访问coordinates,这是通过coordinates[i] 完成的。

    for(var i = 0; i <= M; i += 1;){
        var r2 = Math.abs(sin(angle*N/2));
        var x = r2*Math.sin(angle);
        var y = r2*Math.cos(angle);
    
        coordinates[i] = [x,y];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-01
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 2012-09-08
      • 1970-01-01
      相关资源
      最近更新 更多