http://kmlinux.fjfi.cvut.cz/~culikzde/zpro/simple-drawing.zip #include "drawing.h" #include void draw (int w, int h) { color (255, 0, 0); line (0, 0, w-1, 0); color (0, 255, 0); line (w-1, 0, w-1, h-1); color (0, 0, 255); line (w-1, h-1, 0, h-1); color (255, 200, 0); line (0, h-1, 0, 0); /* osa x */ color (255, 0, 0); line (0, h/2, w-1, h/2); color (0, 0, 255); for (int i = 0; i < w; i += 4) { double x = double (i) * (2*M_PI) / w; double y = sin (x); // (i,k) souradnice (0,0) ... (w-1,h-1) int k = - y * h/2 + h/2; line (i, h/2, i, k); // line (i, 0, i, k); } } #include "drawing.h" #include int w, h; // sirka a vyska obrazovky double xmin = 0, xmax = 1; double ymin = 0, ymax = 1; int xconv (double x) // xmin..xmax --> 0..w-1 { return (x-xmin) / (xmax-xmin) * (w-1); } int yconv (double y) // ymin..ymax --> 0..h-1 { // return (y-ymin) / (ymax-ymin) * (h-1); return (y-ymax) / (ymin-ymax) * (h-1); } void draw (int w0, int h0) { w = w0; h = h0; xmin = 0; xmax = 2*M_PI; ymin = -1.1; ymax = 1.1; color (0, 0, 255); for (double x = 0; x < 2*M_PI; x += 0.05) { double y = sin (x); line (xconv (x), yconv (0), xconv (x), yconv (y)); } color (255, 0, 0); line (0, 0, w-1, 0); color (0, 255, 0); line (w-1, 0, w-1, h-1); color (0, 0, 255); line (w-1, h-1, 0, h-1); color (255, 200, 0); line (0, h-1, 0, 0); /* osa x */ color (255, 0, 0); line (0, h/2, w-1, h/2); } #include "drawing.h" #include int w, h; // sirka a vyska obrazovky double xmin = 0, xmax = 1; double ymin = 0, ymax = 1; int xconv (double x) // xmin..xmax --> 0..w-1 { return (x-xmin) / (xmax-xmin) * (w-1); } int yconv (double y) // ymin..ymax --> 0..h-1 { // return (y-ymin) / (ymax-ymin) * (h-1); return (y-ymax) / (ymin-ymax) * (h-1); } void draw (int w0, int h0) { w = w0; h = h0; xmin = 0; xmax = 2*M_PI; ymin = -1.1; ymax = 1.1; color (0, 0, 255); double x0; double y0; bool ready = false; // true => x0, y0 obsahuji platna data const double step = 0.05; for (double x = x0; x <= 2*M_PI; x += step) { double y = sin (x); if (ready) { line (xconv (x0), yconv (y0), xconv (x), yconv (y)); } x0 = x; y0 = y; ready = true; } color (255, 0, 0); line (0, 0, w-1, 0); color (0, 255, 0); line (w-1, 0, w-1, h-1); color (0, 0, 255); line (w-1, h-1, 0, h-1); color (255, 200, 0); line (0, h-1, 0, 0); /* osa x */ color (255, 0, 0); line (0, h/2, w-1, h/2); }