-
-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pict and Constraint Graphics? #76
Comments
You might be interested in this blogpost about Basalt. At the end there is mention of an in-progress Racket DSL, but as far as I know that hasn't been developed. There are some existing solver tools in Racket like Rosette and CSP. A specialized solver, like Cassowary (also by Alan Borning), might be more effective than these solvers though. A Cassowary port for Racket would be a nice contribution! Typed Racket might be a good way to go since these kind of numeric programs can benefit a good deal from TR's optimizations. |
Metapict [1] is inspired by MetaPost (and MetaFont) [2] and TikZ. In MetaPost it is possible to declare a relationship between two or more variables with There are nice introductions to equations in MetaPost here [3], [4] and [5]. Having a general way of "specify (linear) relations between variables" If I remember correctly, the implementation ran Gauss elimination when Btw - should be move this discussion to https://racket.discourse.group/ instead? [1] https://docs.racket-lang.org/metapict/index.html |
I love Functional Graphics and
pict
! I would love to combinepict
with a constraint-based sizing and layout engine. Has there been any exploration of this? I would like to build something like Alan Borning's ThingLab which was inspired by Ivan Sutherland's Sketchpad. I'm imagining that doing it elegantly would require being able to provide an external environment (computed by the constraint engine) at render time which would override individual size and position information in the tree ofpict
, but perhaps there are other ways of doing it.The text was updated successfully, but these errors were encountered: