То, что я пытаюсь сделать, это рисовать многоугольник из Java в прямое окно 2d C++. У меня есть 2 массива, содержащие x-точки и y-точки многоугольника. При печати массива массив отображается корректно, за исключением первого элемента в обоих массивах.JNI Первое значение jintArray некорректно
На стороне Java:
Polygon fillPoly = new Polygon(new int[] {200, 250, 300}, new int[] {400, 350, 400}, 3);
// 200, 400 | 250, 350 | 300, 400
g.fillPolygon(fillPoly);
//...
public void fillPolygon(final Polygon polygon) {
fillPoly(polygon.xpoints, polygon.ypoints, polygon.npoints);
}
private native void fillPoly(final int[] xpoints, final int ypoints[], final int numPoints);
Но выход на data
строки такие вещи, как:
start: 693635144, 693771992 | Path: 693635144, 693771992 - 0, 0 - 718079568, 693635144 - | numPoints: 3
start: 35, 29 | Path: 35, 29 - 250, 350 - 300, 400 - | numPoints: 3
start: 35, 32 | Path: 35, 32 - 250, 350 - 300, 400 - | numPoints: 3
start: 35, -1437401059 | Path: 35, -1437401059 - 250, 4 - 300, 2949120 - | numPoints: 3
start: 35, 39573896 | Path: 35, 39573896 - 250, 1 - 300, 0 - | numPoints: 3
start: 47, 44 | Path: 47, 44 - 250, 350 - 300, 400 - | numPoints: 3
start: 53, 47 | Path: 53, 47 - 250, 350 - 300, 400 - | numPoints: 3
start: 53, 39589128 | Path: 53, 39589128 - 250, 1 - 300, 0 - | numPoints: 3
start: 56, 53 | Path: 56, 53 - 250, 350 - 300, 400 - | numPoints: 3
start: 56, 50 | Path: 56, 50 - 250, 350 - 300, 400 - | numPoints: 3
start: 39591176, 39591176 | Path: 39591176, 39591176 - 1, 12 - 99607256, 0 - | numPoints: 3
start: 71, 59 | Path: 71, 59 - 250, 350 - 300, 400 - | numPoints: 3
start: 71, 68 | Path: 71, 68 - 250, 350 - 300, 400 - | numPoints: 3
Если я обеспечиваю точки сам он работает, но не с jintArrays
. Как правильно получить значения int для jint*
и создать из них D2D1::Point2F
?
Что такое 'xpoints' и' ypoints' в собственном коде? Я вижу, что такое 'xpoint' /' ypoint' и 'jxpoints' /' jypoints', но я не вижу «xpoints' /' ypoints', объявляемых где угодно. – Michael
Я добавил информацию заголовка – MircoProgram
Я до сих пор не вижу, чтобы 'xpoints' и' ypoints' были объявлены в любом месте кода C++, который вы указали. – Michael