Git Product home page Git Product logo

infinidecimal's Introduction

Infinidecimal Canvas (2020)

Infinidecimal Canvas is a Processing Library numeric canvas that stores the image as a number array to create visuals with arbitrary ranges.

Infinidecimal maintains an array of numbers to represent the canvas. It uses "intensity" to represent color. This way, the color resolution and range is as high as the resolution and range of a floating-point number.

Infinidecimal is tested in Processing v3.5.4 on macOS Mojave and v3.5.3 Windows 10 Pro

The following images are from the example sketches that come with the library.

When working with 8bits, there are certain limitations (well, 8 bits, to be precise) to the opacity and color resolution. This is especially limiting when you want to create visuals by drawing transparent object on top of each other. Infinidecimal Canvas is a solution for this problem.

The image below shows 99,999 lines drawn on each other. First one is drawn by processing's line function, at 1 / 255 opacity. The second image is the output of Infinidecimal. The third pane shows some of the values from Infinidecimal's intensity array. why though

Infinidecimal Canvas offers 4 curve types

curves

3 shapes

shapes

Image plotting

image

Color mapping in RGB and HSB modes

color

A proxy canvas to use Processing's own drawing functions

buffered

And carving mode for negative intensities

carve

Acknowledgement

The anti-aliased, thick line drawing algorithms (namely for line, quadratic bezier, quadratic rational bezier, cubic bezier and ellipse) are all taken directly from Alois Zingl's bresenham implementation, available here.

How to install GR Infinidecimal Canvas

Install with the Contribution Manager

Add contributed Libraries by selecting the menu item Sketch โ†’ Import Library... โ†’ Add Library... This will open the Contribution Manager, where you can browse for GR Infinidecimal Canvas, or any other Library you want to install.

Not all available Libraries have been converted to show up in this menu. If a Library isn't there, it will need to be installed manually by following the instructions below.

Manual Install

Contributed Libraries may be downloaded separately and manually placed within the libraries folder of your Processing sketchbook. To find (and change) the Processing sketchbook location on your computer, open the Preferences window from the Processing application (PDE) and look for the "Sketchbook location" item at the top.

By default the following locations are used for your sketchbook folder:

  • For Mac users, the sketchbook folder is located inside ~/Documents/Processing
  • For Windows users, the sketchbook folder is located inside My Documents/Processing

Download GR Infinidecimal Canvas from http://rect.dev/infinidecimal

Unzip and copy the contributed Library's folder into the libraries folder in the Processing sketchbook. You will need to create this libraries folder if it does not exist.

The folder structure for Library GR Infinidecimal Canvas should be as follows:

Processing
  libraries
    GR Infinidecimal Canvas
      examples
      library
        GR Infinidecimal Canvas.jar
      reference
      src

Some folders like examples or src might be missing. After Library GR Infinidecimal Canvas has been successfully installed, restart the Processing application.

Troubleshooting

If you're having trouble, have a look at the Processing Wiki for more information, or contact the author C. Sina Cetin.

infinidecimal's People

Contributors

csinac avatar

Stargazers

 avatar  avatar

Watchers

 avatar

infinidecimal's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.