Files
autoconfig
cgi
cross_compile
flex
gdb_pretty_print
linking
.gitignore
1st_day_of_month.cpp
JJbY.cpp
Makefile
alternatice_bracket.c
ascii_injection.py
ascii_nn_input_helper.py
bind_test.sh
blumba.html
bootrap.html
brython_hw.html
c.php
c_old_argument_notation.c
cnn.c
comp.c
conditional_const.c
const.c
cpp_regex_error.cpp
current_year.cpp
dda2.cpp
dog.jpg
dog2.jpg
dpt.py
dropdown.html
else_while.c
example.m4
extension_cut.Makefile
fddl.js
fizzbuzz.f90
for_ctags.cpp
format.py
free_null.c
gcc_include_next.c
gdb_graph.c
getopt_test.c
gnu_decimals.c
gnu_history.c
gnu_regex.c
gnu_regex2.c
graph.py
group.py
guards.hs
header.h
index_in_initializer_list_compiler_extension.c
initials_test.html
int_memory.ctype.py
int_memory.py.py
knr.c
levenshtein_dist_-_usage.cpp
map_initialization.cpp
menu.vim
ncurses_labels.c
ncurses_mv_win.cpp
ncurses_plus_readline.cpp
ncurses_resize2.cpp
ncurses_resize_hello_world.cpp
ncurses_resize_test.c
ncurses_scroll.c
nf.c
null_printf.c
null_printf.cpp
otest.py
portable_namespace.c
portable_namespace.h
pta.c
python.html
scoping_showcase.c
screen_size_(without_curses).c
sdl_render_to_texture.cpp
tests/dda2.cpp
2024-03-10 15:57:35 +01:00

45 lines
780 B
C++

// @COMPILECMD g++ $@ -o $*.out -ggdb $(pkg-config --cflags --libs ncurses)
#include <sys/param.h> // MAX()
#include <math.h>
#include <ncurses.h>
typedef struct {
int y;
int x;
} spatial;
void dda(const char c, const spatial from, const spatial to) {
const int steps = MAX(abs(to.y - from.y), abs(to.x - from.x));
struct {
double y;
double x;
} d = {
.y = (double)from.y,
.x = (double)from.x,
};
for (int i = 0; i < steps+1; i++) {
mvaddch(round(d.y), round(d.x), c);
d.y += (double)(to.y - from.y) / (double)steps;
d.x += (double)(to.x - from.x) / (double)steps;
}
return;
}
signed main() {
initscr();
noecho();
curs_set(0);
spatial from = {6, 20};
spatial to = {3, 0};
dda('-', from, to);
refresh();
while(1){}
endwin();
return 0;
}