c-glick / mandelbrot-set Goto Github PK
View Code? Open in Web Editor NEWA java program to generate a graph of the mandelbrot set
A java program to generate a graph of the mandelbrot set
Allow the user to select a preset color pallet.
Allow the user to specify a previously exported image, then use the metadata attached to that image (#14) to set the graph parameters to recreate that exported image.
allow the user to define a custom color pallet for the graph.
add some sort of confirmation after the export image button has been pressed, small dialog box or system notification.
put a drop-down next to reset button to change the reset method. reset only scale, limit, position, or all
the output from the program appears to be a square with some funny edges, this could be for many different reasons. it could be that my equation for determining # of iterations is wrong or it could be the way that I am saving or reading those numbers into the array. or it could be the way that I am drawing to the screen. I will have to look into this.
Add a loading wheel while calculating and drawing to the screen. Shows the user that the program is still working.
Add it to the toolbar where the current settings are displayed.
Add estimated time to complete the current graph near the progress bar. Will be useful in the future when single frames take much longer to calculate.
Add additional details to exported images such as the graph location, scale, and limit.
Display the current settings in the window so the user can see the numbers. Put it in a toolbar or something to that effect rather than drawing text to the canvas.
Resize the graph settings when the window size is changed by dragging the corner of the window. Add set resolutions to the view menu.
the pixel to complexLong method is likely incorrect thus causing the graph to move in the wrong direction when clicked.
Is there a faster way to draw pixels to screen than drawing thousands of 1x1 squares. should also transition to used buffered images to make exporting images easier.
Change the tester class to work with multiple threads in order to run calculations faster.
Run an animation that cycles through the current color pallet.
Be able to rotate the graph, this is intended more for output videos rather than live viewing. Rotate the graph a certain amount for each frame.
After zooming in past 1 * 10^13 the graph becomes pixelated. Increasing the limit does not help. I believe this is due to the limitation of the double variable. As the graph zooms in more and more, the complex numbers created require more and more decimal points to represent.
Working on creating a high precision mode that uses complex numbers and computations using Java's "BigDecimal" class. Note that BigDecimal objects are immutable after the object is created, its value cannot be changed.
The file path is /home/colton-glick/Desktop/test\000_image.png
when it should be .../test/000_image.png
When the canvas is not a square the image is stretched rather than adjusted to fit the window. Will probably need to change how the topLeft and bottomRight complex numbers are generated.
add a button to export the current frame to a specified folder.
File outputfile = new File("/home/colton-glick/Desktop/image.png"); try { ImageIO.write(Launcher.buffImag, "png", outputfile); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Add another mode of coloring. Instead of assigning the color based on the percent of iterations to the limit, (EX: if a point takes 10 iterations, and the limit is 100, the color value would be 10/100 = 0.1 if the limit increases, the iterations taken does not, so the color changes 10/500 = 0.02)
assign colors based solely on the number of iterations. (for example, divide the number of iterations by 100 to get the color value, so 20 iterations would be 20/100 = 0.2) that way as the limit increases the colors remain the same. Will need to keep the color values below 1 somehow.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.