CSCI 261 - Programming ConceptsSpring 2019 - A7 - StargateQuick Links: Canvas | Mines | Piazza | zyBooks |
|||||||||||||||||||||||||||
| Home | Contact | Syllabus | Assignments | Schedule | Resources | | |||||||||||||||||||||||||||
This assignment is due by Tuesday, April 16, 2019, 11:59 PM. · Instructions · Rubric · Submission · InstructionsYour task for this assignment is to extend Lab7B by writing out the modified star data and then drawing a star map similar to the one shown here:
Use your Lab7B as a starting point. You will need to read in the stars.txt file, process the data, write out the new data, and then plot it. Data FileYou will then need to write the file
This information should match the result from Lab7B. Drawing a StarIn your code, you'll need to draw a star. Since stars look like circles, use the CircleShape class. Each circle needs a non-zero radius; use the setRadius function to set this to 2. Then, use this star object to draw each star as you read its properties (i.e., coordinates and brightness) from the data file. For example, to set a star at position xPixel and yPixel use the following:
star.setPosition(Vector2f(xPixel, yPixel));
A star can be drawn on the window using the following function call:
window.draw(star);
Shades of GrayOne of the most common ways to represent colors is with the RGB color model. In this model, each color is represented with three numbers in the range 0 to 255 that represent the amount of red, green, and blue to include in the color. For example, (255,0,0) is the color red and (255,255,0) is the color yellow (i.e., red and green combined). Any color with the same amount of red, green, and blue is a shade of gray. We will use shades of gray to draw our stars with different brightness; thus, in this project, you should include the same amount of red, green, and blue in your colors drawn (but feel free to play with the other more colorful colors!) SFML has a color function that allows the drawing of specific colors using the RGB model. For example, each of the following examples sets the fill color of a star to a different shade of gray:
// Black
star.setFillColor(Color(0, 0, 0)); // Dark gray star.setFillColor(Color(64, 64, 64)); // Medium gray star.setFillColor(Color(128, 128, 128)); // Light gray star.setFillColor(Color(192, 192, 192)); // White star.setFillColor(Color(255, 255, 255)); To determine the shade of gray for each star drawn in this project, you need to scale the brightness value of the star to an integer value between 0 and 255 and set the fill color using that value, as shown above. For example, if brightness is a double variable holding a star's brightness value in the range 0.0 to BRIGHTEST_STAR, to convert it to an integer value in the range 0 to 255, you would use the following:
int shadeOfGray = (int)( ( 255.0 * brightness ) / BRIGHTEST_STAR );
You would then use this shadeOfGray variable to set the drawing color and fill color:
star.setFillColor(Color(shadeOfGray, shadeOfGray, shadeOfGray));
Grading RubricYour submission will be graded according to the following rubric.
This assignment is due by Tuesday, April 16, 2019, 11:59 PM. SubmissionAlways, always, ALWAYS update the header comments at the top of your main.cpp file. And if you ever get stuck, remember that there is LOTS of help available. The following instructions are copied from How to Submit Homework. It is critical that you follow these steps when submitting homework.
If you do not follow these instructions, your assignment
will receive a major deduction. Why all the fuss? Because we have
several hundred of these assignments to grade, and we use
computer tools to automate as much of the process as possible.
If you deviate from these instructions, our grading tools will
not work. And that makes us very unhappy. And when we're
unhappy, we give penalties. Thus, make us happy.
Submission Instructions Here are step-by-step instructions for submitting your homework properly:
In summary, you must zip the
"Set7" folder
and only the "Set7" folder, this zip folder must have several sub-folders, you must name all these folders correctly, you must submit the correct zip file for this
homework, and you must click the "Submit Assignment" button. Not doing these steps is like bringing your
homework to class but forgetting to hand it in. No concessions will be made for
incorrectly submitted work. If you incorrectly submit your homework, we will not be able to
give you full credit. And that makes us unhappy. This assignment is due by Tuesday, April 16, 2019, 11:59 PM. | |||||||||||||||||||||||||||
Last Updated: 04/03/19 16:10
|