How can I define lines so when I click on the screen, my program knows whether I clicked on A B or C?

  • BougieBirdie@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    My approach would involve using some kind of polygon library. When you draw lines, you’re really defining polygons within your canvas. In the case of regions B and C, the edge of the screen make up the rest of the polygon.

    Once you have your polygons defined, you can compare the coordinates of the click event to the polygons. With a good library, it should be fairly trivial to check if a point is within a polygon.

    In the case of region A, you’d find that a click is inside both region A and region B, so I guess I’d also check to see if there are multiple polygons a click could be inside. If there are, then you need to also see if a polygon is inside another polygon to determine the specific polygon clicked. This is also made much simpler by using a good library

    • Lazycog@sopuli.xyz
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      3 months ago

      Good answer! I can’t recommend a library right now, but I recommend looking into the geometric term “Point in Polygon” to further read about this task/problem.

      Edit: wanted to clarify that I just wanted to give a better keyword for OP to search for a solution.