-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the pointR wiki!
pointR is an simple IDE that is envisioned as a bridge between a programming editor and a paint-program. It's target audience is mostly R developers and those interested in web-based graphics. It is still in the infancy stage and has lots of room for improvement. Feel free to contribute, by code, suggestions or $$$
A simple paint program can be easy to use, but lacks the power gained by scripting. But scripting can be painful. The goal of for this project is to try to combine both approaches to obtain something not too hard to use but still open and extensible. .
Our goal requires extensiblity and ease, so we want scripting but without the pain. Typing the coordinates of points to produce a shape is dreadful. So points become a core consideration. Our approach is to specify a set of points using a mouse as the columns of a 2xN matrix.
Multiple shapes can be created by iterating using lapply, over a list of such matrices, for example if mlist is a list of matrices then ` lapply(mlist, function(m)polygon(points=m, fill='red', stroke='green')) will generate a collection of polygons with red fill and green stroke. But if the fill or stroke colours are not constant, we can either add more lists (which eventually will get messy) or combine everything into a tibble (which is quite elegant).
So we take as fundamental sets of points. Each set of points specified as the columns of a matrix. Tibbles can be used to contain both points and associated values
In pointR, programming combines both coding by keyboard and mouse. Points are considered fundamental, and can be edited via the mouse, but how those points are used is governed by the programmers code. Additionally, tibbles (or tribbles) are used to contain points, attributes, and possibly more.
The pointR app is a browser based application running on a the Shiny server by RStudio that generates SVG using the R package svgR.
Feel free to suggest, comment/and or contribute.