首页 > 解决方案 > 如何将此处理代码转换为 P5.js

问题描述

在处理中我这样做了:

  void turnFacesZ(int dir) {
    for (Face f : faces) {
      f.turnZ(dir*HALF_PI); 
    }
  }

我试过这个:

function turnFacesZ(dir) {
    for (var f; f < faces.length(); f++) {
      f.turnZ(dir*HALF_PI); 
    }
  }

还有这个:

function turnFacesX(dir) {
    faces.forEach(function(turnX(dir*HALF_PI)));
  }

尽管它们都不起作用。

还,

var matrix = new PMatrix3D();

什么相当于 javascript 中的 PMatrix3D 库?

标签: javascriptprocessingp5.js

解决方案


在第一次尝试中:

function turnFacesZ(dir) {
   for (var f; f < faces.length(); f++) {
     f.turnZ(dir*HALF_PI); 
   }
 }

您错过了初始化循环 ( var f=0) 的控制变量。它一定要是:

function turnFacesZ(dir) {
    for (var f=0; f < faces.length(); f++) {
         f.turnZ(dir*HALF_PI); 
    }
}

在第二次尝试

function turnFacesX(dir) {
   faces.forEach(function(turnX(dir*HALF_PI)));
 }

您错过了回调函数中的“当前值”参数,并且回调函数没有正文:

function turnFacesX(dir) {
    faces.forEach( function(f) {
        f.turnX(dir*HALF_PI);
    } );
}

如果您想在 javascript 中进行矩阵计算,那么您可以使用glMatrix之类的库。


推荐阅读