GraphiteEditor / GraphiteEditor/Graphite

Canvases with spherical and non-euclidean coordinate spaces

Đang mở
#2,010 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Architecture
Ngôn ngữ chính
Rust
Star
27.2k
Fork
1.3k
Merge trung bình
20 giờ 5 phút
Pull request đã merge (30 ngày)
57

Mô tả

A spherical canvas could represent a photo sphere, or maps of the Earth or other planet surfaces, or the stars around the earth. Unlike the standard Euclidean infinite canvas, this would have finite area but retain infinite zoom depth. Useful nodes could, for example:
- Provide base maps for GIS data such as satellite/aerial imagery
- Digital elevation maps
- OpenStreetMap layers
- Import custom survey datasets and lat/long/(elevation?) tracks
- Generate star charts from star databases
- Plot tracks for satellites, planets, comets, etc. from their ephemera
- Visualize KML files
- Construct conformal maps and Escherian artwork, see [this 3B1B video](https://www.youtube.com/watch?v=ldxFjLJ3rVY)

Things you could do:
- Make videos with motion graphics incorporating city street/transit layouts or city/country/continent-scale boundaries
- Annotating maps or overlaying CAD site plans on a map
- Visualize sea level rise or flooding
- Process LiDAR or other survey datasets with image processing techniques
- Generate celestial body tracks over star charts
- Animate a planetarium show (and render its different projector views)
- Use tools to paint, draw, and animate over photo spheres and 360° videos
- Load accelerometer data to stabilize and reorient the spherical canvas
- Render out tiny planet projections
- Design skyboxes for games/animations

Besides spherical coordinates, other non-Euclidean canvas coordinate systems could be used, such as a finite tiling rectangle or hex cell. Drawing off one edge would result in drawing on the opposite edge. This would be more sophisticated than an infinite tiling node because the actual coordinate space would wrap, not just the content being generated infinitely. Other variants of wrapping could include a ping-ponging coordinate space or a Möbius strip (see [this video](https://youtu.be/v5ev-RAg7Xs?t=297)).

![Image](https://github.com/user-attachments/assets/a960e839-5c0d-46a5-9f50-ee4a7b305f5d)

See https://en.wikipedia.org/wiki/Template:Orthogonal_coordinate_systems and https://en.wikipedia.org/wiki/Orthogonal_coordinates

This all somewhat relates to #1271 which will involve moving beyond affine transforms.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Không có tệp, bài kiểm thử hoặc entry point nào được nêu. Hãy bắt đầu bằng việc xem xét issue liên quan #1271 và các tài liệu tham chiếu về hệ tọa độ được liên kết, sau đó xác định kiến trúc canvas và transform hiện có. Công việc được xem là hoàn tất khi có thiết kế đã thống nhất và phần triển khai cho các không gian tọa độ hình cầu hoặc phi Euclid khác, bao gồm các biến thể wrapping được đề xuất.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
rust
Lĩnh vực
computer-graphics
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.