iddan / react-native-canvas

A Canvas component for React Native
MIT License
981 stars 172 forks source link

The return value has a large deviation by using isPointInStroke #337

Open gun-ctrl opened 2 months ago

gun-ctrl commented 2 months ago

This is part of the code: the function is used to determine the effective click range,but the return value has a large deviation by using isPointInStroke.

cxt = canvas.getContext('2d');
async function isInCricle(x, y) {
    cxt.beginPath();
    cxt.lineWidth = arcRadio + 50;
    let path = new Path2D(canvas);
    path.arc(center, center, radius, Math.PI * 0.32, Math.PI * 0.68, true);
    let result = await cxt.isPointInStroke(path, x, y);
    Alert.alert(result + x.toFixed(1) + y.toFixed(1))
    return result;
  }
gun-ctrl commented 2 months ago

I have tried to test isPointInStroke,but the result still is "false".

    cxt.beginPath();
    cxt.lineWidth = arcRadio + 50;
    let path = new Path2D(canvas);
    // path.arc(center, center, radius, Math.PI * 0.32, Math.PI * 0.68, true);
    path.moveTo(60,60);
    path.lineTo(160,60);
    cxt.strokeStyle = 'red';
    let result = await cxt.isPointInStroke(path, 100, 60);

@iddan