ucsb-cs56-projects / cs56-discretemath-towers-sierpinski Goto Github PK
View Code? Open in Web Editor NEW-
-
~depends #31
Integrate the color picker as part of the swing GUI. Launch the color picker with the press of a button within the GUI, and when the color picker is closed, re-create the output xml file and re-display it.
~estimated 250
Add the ability to change the number of disks in the Sierpinski's Triangle/ Towers of Hanoi display that you get with ant run from the GUI so you do not have to exit and re-enter the application. This should function similarly to how it does with the Pascal's triangle that you get from ant runPascal.
Change package so it uses domain style naming. Create lib file with jar. Create build.xml instead of using netbeans generated build.xml.
~estimated 30
Currently, when the user runs "ant EX_DEF," a pop-up window will show. But if the user chooses the button "Choose New Scheme," a second pop-up window will show. If the user clicks on the "x" exit button on the pop-up, both pop-ups will close.
Implement a 'back' button to revert back to the first pop-up window, as well as control the functionality of the 'x' exit button to do the same.
~estimated 120
There are currently no test cases for this project. Add unit tests for PascalTriangle and SierpinskiTriangle
200 points
Allow custom attributes for SierpinskiTriangleBuilder such as side thickness, font, side color, image size, background-color, etc. Also handle / provide defaults for when these values are not set.
~estimated 50
Add size option to SierpinskiTriangleBuilder and use scaling to adjust to desired dimensions. Include parameters to command line call so that image size can be determined.
~estimated 25
(5) Allow user to select colors in the GUI from a color picker, and then write those values back to the properties file.
~estimate: 120
(3) Add widgets to allow:
the width and height of the Jframe to by dynamically changed
the font size for edge and disk labels to be selected from a menu
~estimate: 120
Implement Sierpinski Triangle described in Issue #1 using SVG (http://en.wikipedia.org/wiki/Scalable_Vector_Graphics).
~estimate: 720
Create a main entry page for the program so everything fits together better. This should function as something of a menu from which the user can navigate to all the current parts of the program and descriptions.
Right now the only way to view the triangle produced by
ant run
is to open the output file in a web browser.
Create a swing GUI using some library for viewing HTML5 documents such as JavaFX which will display the xml file outputted by the program.
See: http://docs.oracle.com/javafx/2/swing/swing-fx-interoperability.htm
Your swing GUI should also include zoom buttons to allow the user to zoom as far in or out as they like (after all, we are working with Scalable Vector Graphics).
~estimated 300
Currently the color scheme creator GUI (run using ant EX_GUI) is very confusing and not aesthetically pleasing. Fix the layout of the window to make it more logical, make the instructions clearer, and clean up the look of the window to make it more navigable and user friendly.
Currently, to see a Pascal triangle with a different number of rows you must exit the program and rebuild with a new amount of rows. Fix this so the user can enter a number of rows in the GUI, click a button, and the new Pascal Triangle will replace the old one.
~claimed @wmateer ~moderator @CARammelkamp ~estimated 200
(4) Use a "properties" file to allow the user to specify the colors for the disks by writing hex colors into the properties file.
Note: a "properties" file is a standard Java "thing"---use that interface.
~estimate: 120
Need to fix the layout of the color picker. Buttons should be put in a more sensible order and the GUI should be cleaned up so it's more obvious what the user should do.
Take shannon's image saving code and combine them to make them all work together
~estimated 120
~claimed @jacob-a @gordoncheung @shanencross
Yes all 3 of you get 120 points if completed successfully
The color picker using "ant EX_DEF" currently has a gray background and simple color scheme. The buttons are a bit confusing as to make the user experience a little less seamless. Improve the graphics of the window to make it more aesthetically pleasing while maintaining functionality.
~estimated 120
Change algorithm so that SVDefinitions and SVUse classes are used to draw content once, instead of redrawing similar elements for each subs triangle.
~estimated 75
Right now, the color picker program run with
ant EX_DEF
has 5 color selections to choose from. There appears to be some slight typos with the name and associated colors. For example, choosing the "Winter" color theme appears to actually result in the Rainbow theme. The "Rainbow" color theme results in a red/orange/yellow theme which doesn't seem to be "Rainbow."
In addition to the issue above, add in 5 new, interesting color schemes.
~estimated 100
You always need a
if (args.length != EXPECTED_VALUE_GOES_HERE) {
System.out.println("Usage: blah blah blah");
System.exit(1);
}
when you are using args[0], args[1], etc.
Fix this.
~estimated 120
(the 120 I took out for having not done this the first time.)
Also: add the echos that you have in the help target into the run target as well. :-)
Update the build.xml to use the gh-pages workflow to publish their javadoc to a github pages URL
100 points
Within each set of towers the disks do not align properly in a vertical fashion. It seems that closer to the center of the entire triangle the alignment is more true. However, outwards towards the edges it gets worse.
Add functionality to the Pascal Triangle portion of the program so that the user can input their desired size of the triangle and the image will be displayed as desired.
When the user runs the program with a number of disks greater than 3, there are points on the triangle that towers will overlap with each other. The problem does not seem to get worse with more disks (the overlap past 3 disks remains constant). Figure out a way to remove this overlap possibly by repositioning the render location of the towers.
Make disks look nicer and numbers easier to read by adding a background circle of white inside each disks. Make disks larger and allow font to be changed easily in one place.
Create a background for towers so they look better and are easier to read. Make background with opacity so they do not take over the entire triangle. Include a border and border radius.
~estimated 60
(2) Add capabiltiy to save image to .png or .jpg
~estimate: 120
The image of Pascal's Triangle currently has a gray background and simple color scheme. Improve the graphics of the image to make it more aesthetically pleasing.
~estimated 120
Goal 1: Write a Java class with a method that
n, the number of disks
colors, a java.util.ArrayList of size n
width width and height in pixels
Will draw on the screen in a Swing gui a representation of diagrams similar to those shown in the linnks above (which were hand drawn.)
~estimate: 360
For now, these can be hard coded, though they should be in one place in the code so they can be easily changed:
edgefont a font specification for the edge labels
diskfont a font specification for the disk labels
There are some interesting relationships between Pascal's Triangle, Sierpinski's Triangle, and the Tower of Hanoi.
For Pascal's Triangle, if every number were in a square and we were to shade in that square if the number were odd, we would observe a pattern that is the Sierpinski's Triangle.
See link:
https://www.zeuscat.com/andrew/chaos/pascal.sierpinski.clear.gif
Another relation in Pascal's Triangle is the sum of the terms in each row of the triangle.
Simply put: the sum of the numbers in the nth row minus 1 == the total number of moves required to move an ordered stack of nth discs from one column to another.
(Note: The starting row in Pascal's Triangle is the 0th row)
Example:
If we had 0 discs, we need 0 moves. ((1) - 1)
If we had 1 disc, we need 1 move. ((1+1) - 1)
If we had 2 discs, we need 3 moves. ((1+2+1) - 1)
If we had 3 discs, we need 7 moves. ((1+3+3+1) - 1)
Create a Swing GUI to observe this phenomenon.
~estimated 250
Right now the color picker program, run with
ant EX_DEF
or
ant EX_GUI
does not change the color scheme of the outputted SVG image.
You will notice that there is a file named colors.properties in the root directory of the project. If the hex color code values there are modified before the program is run with
ant run
then you will notice a change in the color scheme of the outputted SVG image.
Modify the color picker program to save to this colors.properties file and change the color scheme of the outputted SVG image.
~estimated 100
Consolidate the two build files so that there is only one.
50 points
Add SVDefinitions and SVUse classes to SVGraphics package so that and elements can be utilized. This will increase speed and reduce the required processing power substantially.
~estimated 75
Right now when the user clicks on the "large" button the screen is pushed far away off to the top left corner of the screen, and nothing is visible. Instead, start the horizontal scroll position of the view in the center of the triangle so that when the user clicks the "large" button they can see the top of the triangle.
Make disk color correspond to current move (triangle side color) similar to the sample Sierpinski triangle provided.
~estimated 30
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.