두 개의 다각형을 가지고 있으며이를 java3d를 사용하여 삼각형 메쉬로 변환하려고합니다. 하지만 내가 시도하는 것은 오류가 발생합니다. 내가 뭘 놓치고 있니? 난 당신이 알고 먼저 디버그 모드를 사용하도록 조언java3d의 다각형 배열을 IndexedTriangelArray로 바꾸는 방법
final int n = points.length;
final int m = opoints.length;
final GeometryInfo gi = new GeometryInfo(GeometryInfo.POLYGON_ARRAY);
final Point3d[] npoints = Arrays.copyOf(points, n + m);
System.arraycopy(opoints, 0, npoints, n, m);
gi.setCoordinates(npoints);
gi.setStripCounts(new int[] { n, m });
gi.convertToIndexedTriangles();
final IndexedTriangleArray it = (IndexedTriangleArray) gi.getIndexedGeometryArray();
final Point3d[] newPoints = new Point3d[it.getVertexCount()];
it.getCoordinates(0, newPoints);
// Exception in thread "main" java.lang.NullPointerException
// at javax.media.j3d.GeometryArrayRetained.getCoordinates(GeometryArrayRetained.java:5425)
// at javax.media.j3d.GeometryArray.getCoordinates(GeometryArray.java:3699)
final int[] nidxs = new int[it.getValidIndexCount()];
it.getCoordinateIndices(0, nidxs);
물론 필자는 화난 - 편집 성 - 개발자 모드로 전환하고 모든 단계를 디버그 할 수 있습니다. 그러나 나는 누군가가 나를 실용적인 예로 가르치 길 희망했다. java3d는 고아 프로젝트와 비슷한 것으로 보이며 사용자는 marooned입니다. –
디버그 모드를 사용하는 것은 편집증과는 아무런 관련이 없습니다. API가 더 사용하기 쉽고, 문서화가 잘되고, 디자인이 잘되어있다면 소스 코드를 살펴 보는 것도 마찬가지입니다. Java 3D는 고아 프로젝트가 아닙니다. 몇 주 동안 튜토리얼을 작성하면서 JOGL 2로 포트를 시작했으며 Harvey는 여전히 그것을 유지합니다. 절대적으로 모든 사용 사례에 대한 예제를 제공 할 수는 없습니다. 우리는 Java 3D 사용자를 포기하지 않지만, 여기에서 매일 질문에 대한 답변을 제공하지만 Java 3D에 대한 도움을 요청하는 가장 좋은 곳은 아니며 공식 JogAmp 포럼을 방문하십시오. – gouessej
또한 Java 3D는 커뮤니티 프로젝트이며, 우리는 여유 시간에 최선을 다해 "Stacked Stack", JogAmp 포럼 및 on에 관한 질문에 매일 몇 시간을 소비하는 반면 "사용자는 marooned"와 같은 것을 읽습니다. JavaGaming.org는 2006 년 이후로 매우 낙담합니다. 우리는 "아기에게 먹이를 줄"수 없으며, 스스로 배우고 더 멀리 나아갈 수 있도록 충분한 적응증을주기 위해 노력했습니다. 너는 무엇을 더 기대 하느냐? 나는 전체 코드를 쓰지 않을 것이다. gi.getCoordinateIndices() 및 gi.getCoordinates()를 호출하는 것은 어렵지 않습니다. 나는 가혹하게되고 싶지 않다. 미안하다. – gouessej