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
45 lines
780 B
C++
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;
|
|
}
|