Orientation
Other formats: Markdown version
In our previous tutorial we explored position as a preattentive feature. Specifically, we investigated how to control the location of our shapes through manipulation of the transformation matrix. However, we can do more than just change the origin (0, 0 point) of our coordinate system, we can rotate it as well! In this tutorial, we conclude Skills Lab 3 by looking at our final preattentive feature: orientation.Contents
Rotate
We will start by doing a global rotation. This also changes the transformation matrix. However, give this a run and you might notice a problem.import sketchingpy
sketch = sketchingpy.Sketch2D(500, 500)
sketch.set_rect_mode('radius')
sketch.set_angle_mode('degrees')
size = 5
for rotation in range(0, 12):
sketch.draw_rect(200, 0, size, size)
sketch.rotate(30)
size += 5
sketch.show()
Our work is off the screen! Try changing the position of the
squares.
Rotate and Translate
Using that first sketch as motiviation, it is common to translate prior to rotation to indicate the point around which the rotation should occur.import sketchingpy
sketch = sketchingpy.Sketch2D(500, 500)
sketch.set_rect_mode('radius')
sketch.set_angle_mode('degrees')
def draw_at(x, y, color):
sketch.push_transform()
sketch.push_style()
sketch.translate(x, y)
sketch.set_fill(color)
size = 5
for rotation in range(0, 12):
sketch.draw_rect(100, 0, size, size)
sketch.rotate(30)
size += 2
sketch.pop_style()
sketch.pop_transform()
sketch.translate(250, 250)
draw_at(0, -100, "#1b9e7750")
draw_at(-100, 100, "#d95f0250")
draw_at(100, 100, "#7570b350")
sketch.show()
It is also common to push and pop within a function so that you
can keep track of what transforms have occurred.
Next
You've reached the end of Skills Lab 3! Continue on to Tutorial 8 which starts Skills Lab 4 to learn about text.Citations
- A. Pottinger, "Sketchingpy." Sketchingpy Project, 2024. [Online]. Available: https://sketchingpy.org/
- C. Brewer, M Harrower, and The Pennsylvania State University, "Colorbrewer 2.0," The Pennsylvania State University, 2013. [Online]. Available: https://colorbrewer2.org/
Citations
- A. Pottinger, "Sketchingpy." Sketchingpy Project, 2024. [Online]. Available: https://sketchingpy.org/
- C. Brewer, M Harrower, and The Pennsylvania State University, "Colorbrewer 2.0," The Pennsylvania State University, 2013. [Online]. Available: https://colorbrewer2.org/