2D Rendering
- Denote an image with a single array and a pixel's index can be found by
width * y + x
. - The x coordinate is
i % width
, y isi / width
. - To get a point at a distance r and angle t, relative to point (x0, y0)
- For drawing a simple primitive, use its derivative to get the next pixel, usually the derivative is simpler
- Ok, Fk, This stuff is sub optimal, since it kinda encourages drawing vertically, which is not optimal for the cache.
Line
- A line's equation is
or, where
- When drawing line, a simple
for (x in x0..x1)
usually leaves gaps if , andfor (y in y0..y1)
leaves gaps when , use both with if cases. - Use when when drawing lines to avoid division.
Circle
- A circle's equation is
or,
- Its not worth doing the derivative for a circle, just use the equation.
- A circle can be drawn by only finding 1/8th of it, and mirroring it to the other 7 parts.
Ellipse
- An ellipse's equation is
or,
- Its not worth doing the derivative for a circle, just use the equation.
- An ellipse can be drawn by only finding 1/4th of it, and mirroring it to the other 3 parts.
Rotated Rectangle
- Find the points of upper line and the corresponding point at the bottom part at the same x coordinate.
- Draw a vertical line between these two points.
- Bam, you have a rotated rectangle.