Add line_t struct and update draw_line function
This commit is contained in:
parent
5908cf3063
commit
65dcd66f76
@ -4,6 +4,11 @@
|
|||||||
#include "vector/vec.h"
|
#include "vector/vec.h"
|
||||||
#include "window/window.h"
|
#include "window/window.h"
|
||||||
|
|
||||||
void draw_line(window_t *wnd, vec2i_t p0, vec2i_t p1, colour_t colour);
|
typedef struct {
|
||||||
|
vec2i_t p0;
|
||||||
|
vec2i_t p1;
|
||||||
|
} line_t;
|
||||||
|
|
||||||
|
void draw_line(window_t *wnd, line_t line, colour_t colour);
|
||||||
|
|
||||||
#endif // !RASTERISER_H
|
#endif // !RASTERISER_H
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
|
#include "rasteriser/rasteriser.h"
|
||||||
#include "c_cpp_aliases/aliases.h"
|
#include "c_cpp_aliases/aliases.h"
|
||||||
#include "vector/vec.h"
|
#include "vector/vec.h"
|
||||||
#include "window/window.h"
|
#include "window/window.h"
|
||||||
|
|
||||||
void draw_line(window_t *wnd, vec2i_t p0, vec2i_t p1, colour_t colour) {
|
void draw_line(window_t *wnd, line_t line, colour_t colour) {
|
||||||
if (p1.x < p0.x) {
|
if (line.p1.x < line.p0.x) {
|
||||||
vec_swap(vec2i_t, p0, p1);
|
vec_swap(vec2i_t, line.p0, line.p1);
|
||||||
}
|
}
|
||||||
|
|
||||||
i32 x0 = p0.x;
|
i32 x0 = line.p0.x;
|
||||||
i32 y0 = p0.y;
|
i32 y0 = line.p0.y;
|
||||||
i32 x1 = p1.x;
|
i32 x1 = line.p1.x;
|
||||||
i32 y1 = p1.y;
|
i32 y1 = line.p1.y;
|
||||||
|
|
||||||
f32 a = ((f32)y1 - y0) / ((f32)x1 - x0);
|
f32 a = ((f32)y1 - y0) / ((f32)x1 - x0);
|
||||||
f32 y = y0;
|
f32 y = y0;
|
||||||
|
Loading…
Reference in New Issue
Block a user