불행히도 나를 위해이 코드 수정이 필요합니다. 이것을 Processing.JS 코드 저장소에 제출하는 방법을 살펴 보도록하겠습니다. 그러나 여기에 제가 한 일이 있습니다.
먼저 modelX() 및 modelY()를 사용하여 월드 뷰에서 마우스의 좌표를 가져와야합니다. 즉 다음과 같이 표시됩니다
float model_x = modelX(mouseX, mouseY);
float model_y = modelY(mouseX, mouseY);
불행하게도 Processing.JS은 2D 환경에서 올바르게 modelX()와 modelY() 값을 계산하지 않는 것 같습니다. 이를 수정하기 위해 다음과 같이 기능을 변경했습니다. 내가 그이 문제가되어 다른 사람을 도움이되기를 바랍니다
p.modelX = function(x, y, z) {
var mv = modelView.array();
if (mv.length == 16) {
var ci = cameraInv.array();
var ax = mv[0] * x + mv[1] * y + mv[2] * z + mv[3];
var ay = mv[4] * x + mv[5] * y + mv[6] * z + mv[7];
var az = mv[8] * x + mv[9] * y + mv[10] * z + mv[11];
var aw = mv[12] * x + mv[13] * y + mv[14] * z + mv[15];
var ox = 0, ow = 0;
var ox = ci[0] * ax + ci[1] * ay + ci[2] * az + ci[3] * aw;
var ow = ci[12] * ax + ci[13] * ay + ci[14] * az + ci[15] * aw;
return ow !== 0 ? ox/ow : ox
}
// We assume that we're in 2D
var mvi = modelView.get();
// NOTE that the modelViewInv doesn't seem to be correct in this case, so
// having to re-derive the inverse
mvi.invert();
return mvi.multX(x, y);
};
p.modelY = function(x, y, z) {
var mv = modelView.array();
if (mv.length == 16) {
var ci = cameraInv.array();
var ax = mv[0] * x + mv[1] * y + mv[2] * z + mv[3];
var ay = mv[4] * x + mv[5] * y + mv[6] * z + mv[7];
var az = mv[8] * x + mv[9] * y + mv[10] * z + mv[11];
var aw = mv[12] * x + mv[13] * y + mv[14] * z + mv[15];
var oy = ci[4] * ax + ci[5] * ay + ci[6] * az + ci[7] * aw;
var ow = ci[12] * ax + ci[13] * ay + ci[14] * az + ci[15] * aw;
return ow !== 0 ? oy/ow : oy
}
// We assume that we're in 2D
var mvi = modelView.get();
// NOTE that the modelViewInv doesn't seem to be correct in this case, so
// having to re-derive the inverse
mvi.invert();
return mvi.multY(x, y);
};
: mv.length의 == (16)에 대한 테스트 및 2D의 끝 부분을 유의하십시오.
이 게시물은 도움이 될 수 있습니다. http://stackoverflow.com/questions/5470819/transform-from-relative-to-world-space-in-processing – Justin
감사! 그것은 ... 나는 그것을 볼 것입니다. – Bjarne77
코드를 게시하십시오! 이렇게하면 문제가 명확해질 수 있습니다. 또는 적어도 우리는 문제를 재현 할 수 있습니다. 네가 길을 잃었다 고 하던데. 어떻게? 무슨 일이야? – jorrebor