Weekly Blog
See how I plan to tackle this project and watch my progress throughout the Spring 2018 semester
Much has happened since my last blog. My presentation went very well. I think that everyone has a clear understanding of how my project works, and enjoyed the visuals that came along with the presentation. My classmates and other attendees had great questions on how my project could be altered, extended, and other features that could be added. One question in particular that really made me happy was to hear one audience member ask "When you change the amount of words that the user asks for, could you make their font sizes larger when trying to create a shape?" Why, yes, that is a great idea and hope that the next person to work on this project can implement it! Also implement the Twitter API, that would be great too. :) I had a very fortunate visual glitch during my presentation as well, the projector and monitor screens were so bright that nobody could tell my shapes were visible in the background. It was almost like magic to the audience.
My defense was one week later, and I was happy to hash things over with McVey and Pankratz. Mainly questions considering the data, the code, and the error handling. Nothing I wasn't prepared for and I was glad to rehash everything with the two of them. I will surely remember this adventure for a long time to come, thank you St. Norbert College and thank you to the entire Computer Science Department. I will not forget this capstone experience. I'm so happy that this semester is coming to a close. I am ready to graduate and be in control of my own future.
0 Comments
Dr. McVey found out what was going wrong with my whitespace function. It was not checking for collision on itself. It would only move if the move was larger than itself. Long story short. The whitespace algorithm can now move words within pixels of each other. This is the highest possible efficiency for the language and system of controls I am using. I am so happy right now!
Since the last time I updated the blog, yep you guessed it, I've now been able to make tag clouds using shapes! I am able to make words form in the shapes of a Heart, a Lightning Bolt, a Star, a Callout Bubble, and an Arrow. There is still no overlapping labels and the algorithm runs smoothly. For the longest time shaped clouds had bugged me and I was beginning to lose hope of ever making them. My original idea was to never let my method place a label outside of the shapes bounds, in other words, try to place the words in the shape with 100 percent accuracy. After a whole week of getting nothing but System.Stack.Overflow errors, I finally understood what was going wrong. I was putting to many parameters on an already complex and recursive function - way to many calls to the label.location property and the C# .Net system did not like it. So I realized, that I can allow my function to miss the shape as long as just correct it right after. That is what became of my shape placement algorithm, it is now a label eraser algorithm that senses when a label has spawned outside a background shape and deletes it. Another new feature I have added will let the user customize their font for their word tag cloud. Soon I will customize color for each tag cloud as well. McVey has brought up an idea that may very well make the white space of the program even less. She is saying that I need to place the labels into an array of labels, so that I will have direct access to their manipulation in an orderly manner that can check against every existing word. My current function is strange in the way that it can only check whitespace between what was made before the previous label, not after. Hopefully I can implement this soon! JIM It has been a little while since I last wrote. BIG UPDATES:
How can I make the whitespace still go down further? For this solution to be robust, I need to make it as small as I possibly can. I am having small success by retroactively cutting the label's rectangle by a ratio that should let words get closer. How can I get words to place vertically? This could be revolutionary at making my design look much more appealing and squeeze as much info as possible How to have a shaped tag cloud?McVey and Pankratz both suggest loading a colored simple shape in the background and comparing pixel color to suggest a target for the labels to land in. More to come on this. Here is a snapshot of my progress: I have now moved on from the development of my algorithm of placing the generated words. While I will still be able to come back to my whitespace algorithm and change it along the way, I think it is overdue that I start working on integrating the data from Twitter. I am taking tutorials on Python and the Twitter API as I am writing this blog. I will come back soon with more updates on my application.
I have been working on the efficiency and placement of the words. I have added up all of the pixels that are in my placement zone, and then added up the size of the words (in pixels) that are placed. I then divide the the used area by the amount of total pixels, obtaining a ratio (or score) of how well the words were placed and how much more white space there is to be filled.
The algorithm for placing words is archaic at the moment, but it is better than random. I think the ratio score can only help me in finding the best placement algorithm in the long haul. It has been quite a time getting things up and running but slowly and surely things has started to roll along. My sister's Wedding was a welcome distraction during this learning time as well.
Here is a few things I have learned:
I realize that 2 size font is illegibly tiny but this is just for debugging. The Run button spits out the word iterations. Run is not enabled when the word count is less than 1. Clear instantly deletes all words. Once I get the most efficient algorithm, I will follow with a big data source. I Met with Dr. Pankratz for my project Assignment on Wednesday January 24th, and man I am thrilled to have received it. I'm also excited to apply my other major of Graphic Design to this project. The Title is Illustrating Text by Tag Clouds. DCP made sure to make the project as clear as possible and made mention of some key concepts to keep in mind:
GOOD
Then I created this website to track my work throughout the semester. I also finished my resume and my philosophical statement, both of which I feel are very important at this stage in my college career. Well until next time, Jim |
Jim RogersComputer Science and Graphic Design major ready to dive into the working world of these creative concentrations. Archives
May 2018
Categories |