{"id":16224249,"url":"https://github.com/gettalong/geom2d","last_synced_at":"2025-10-05T03:41:56.158Z","repository":{"id":66009247,"uuid":"127101502","full_name":"gettalong/geom2d","owner":"gettalong","description":"Objects and Algorithms for 2D Geometry in Ruby","archived":false,"fork":false,"pushed_at":"2023-07-31T20:46:44.000Z","size":49,"stargazers_count":13,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-26T02:42:17.947Z","etag":null,"topics":["geometry","polygon-boolean","polygon-clipping-algorithm","ruby"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gettalong.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-28T07:30:30.000Z","updated_at":"2025-06-03T16:45:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"4330cb5b-a29a-4dd2-bec1-706bc8185c12","html_url":"https://github.com/gettalong/geom2d","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/gettalong/geom2d","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gettalong%2Fgeom2d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gettalong%2Fgeom2d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gettalong%2Fgeom2d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gettalong%2Fgeom2d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gettalong","download_url":"https://codeload.github.com/gettalong/geom2d/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gettalong%2Fgeom2d/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278404486,"owners_count":25981290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geometry","polygon-boolean","polygon-clipping-algorithm","ruby"],"created_at":"2024-10-10T12:23:38.685Z","updated_at":"2025-10-05T03:41:55.822Z","avatar_url":"https://github.com/gettalong.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Geom2D - Objects and Algorithms for 2D Geometry in Ruby\n\nThis library implements objects for 2D geometry, like points, lines, line segments, arcs, curves and\nso on, as well as algorithms for these objects, like line-line intersections and arc approximation\nby Bézier curves.\n\n\n## License\n\nCopyright (C) 2018-2023 Thomas Leitner \u003ct_leitner@gmx.at\u003e, licensed under the MIT - see the\n**LICENSE** file.\n\n\n## Features\n\n* Objects\n  * Point\n  * Segment\n  * Polygon\n  * PolygonSet\n  * Rectangle\n  * Polyline (TODO)\n  * Rectangle (TODO)\n  * QuadraticCurve (TODO)\n  * QubicCurve (TODO)\n  * Arc (TODO)\n  * Circle (TODO)\n  * Path (TODO)\n* Algorithms\n  * Segment-Segment Intersection\n  * Boolean Operations on PolygonSets\n\n## Usage\n\n~~~ ruby\nrequire 'geom2d'\n\n# Point, can also be interpreted as vector\npoint1 = Geom2D::Point(2, 2)\npoint2 = Geom2D::Point([2, 2])   # arrays are fine but not as efficient\npoint3 = Geom2D::Point(point2)   # copy constructor\n\n# Segment defined by two points or a point and a vector\nline1 = Geom2D::Segment(point1, point2)\nline2 = Geom2D::Segment(point1, vector: point2)\nline3 = Geom2D::Segment([3, 4], [9, 6])   # arrays are also possible\n\n# Segment intersection\nline1.intersect(line3)  # =\u003e intersection_point\n~~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgettalong%2Fgeom2d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgettalong%2Fgeom2d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgettalong%2Fgeom2d/lists"}