Go to file
2024-12-17 17:53:35 +08:00
convex_hull.c wasm凸包测试 2024-12-17 17:52:09 +08:00
convex_hull.html wasm凸包测试 2024-12-17 17:52:09 +08:00
convex_hull.js wasm凸包测试 2024-12-17 17:52:09 +08:00
convex_hull.wasm wasm凸包测试 2024-12-17 17:52:09 +08:00
readme.md 新增git地址 2024-12-17 17:53:35 +08:00
生成 wasm凸包测试 2024-12-17 17:52:09 +08:00

凸包算法的wasm实现

在线测试地址 git

  function callWasmConvexHull(points) {
        //长度
        var n = points.length;
        var pointsPtr = Module._malloc(n * 8);  //8字节一个点

        for (let i = 0; i < n; i++) {
            Module.setValue(pointsPtr + i * 8, points[i].x, 'i32');
            Module.setValue(pointsPtr + i * 8 + 4, points[i].y, 'i32');
        }
        //多少点
        var resultPtr = Module._malloc(n * 8);
        var resultSizePtr = Module._malloc(4);
        //调用wasm
        Module._convexHull(pointsPtr, n, resultPtr, resultSizePtr);
        var resultSize = Module.getValue(resultSizePtr, 'i32');
        var resultPoints = [];
        //读
        for (let i = 0; i < resultSize; i++) {
            var x = Module.getValue(resultPtr + i * 8, 'i32');
            var y = Module.getValue(resultPtr + i * 8 + 4, 'i32');
            resultPoints.push({ x: x, y: y });
        }
        // 释放
        Module._free(pointsPtr);
        Module._free(resultPtr);
        Module._free(resultSizePtr);
        return resultPoints
    }