using System; using System.Reflection; using System.Runtime.InteropServices; using Cairo; public class Example { static double x (double t) { return t; //return Math.Cos(5*t); // зняти коментар фіґур Ліссажу - див. зображення 4 } static bool defined (double t) { // return (t != 0.5); // зняти коментар для дробно-лінійної функції return true; } static double y (double t) { // if (defined(t)) return (t/8+0.0625)/(2*t-1); return t/2+0.75; //return t*t/4+t/3-0.25; //return Math.Sin(7*t); // зняти коментар фіґур Ліссажу - див. зображення 4 } static void Main () { using (ImageSurface draw = new ImageSurface (Format.Argb32, 600, 600)) { using (Context g = new Context(draw)) // Встановлення: { double nx=600, // розмір зображення по горизонталі ny=600, // розмір зображення по вертикалі nj=2000, // кількість ланок ламаної - наближення графіка txx=10, // зсув підпису x по горизонталі від краю рисунка txy=15, // зсув підпису x по вертикалі від осі абсцис tyx=15, // зсув підпису y по горизонталі від осі ординат tyy=10, // зсув підпису y по вертикалі від краю рисунка ax=3, // половина розміру по горизонталі стрілки на осі ординат ay=8, // половина розміру по вертикалі стрілки на осі абсцис ix=0, // абсциса поточної точки iy=0, // ордината поточної точки ixp=0, // абсциса попередньої точки iyp=0, // ордината попередньої точки t0=-10, // найменше значення аргумента t1=10, // найбільше значення аргумента t =t0, // поточне значення аргумента tp=t0, // попереднє значення аргумента x0=-1, // найменше значення абсциси на рисунку x1= 1, // найбільше значення абсциси на рисунку y0=-1, // найменше значення ординати на рисунку y1= 1, // найбільше значення ординати на рисунку dx=x1-x0, // приріст абсциси на рисунку dy=y1-y0, // прирiст ординати на рисунку dt=(t1-t0)/nj; // прирiст аргумента між вершинами ламаної g.SetSourceColor(new Color (0, 0, 0, 1)); // колір осей та їхніх підписів g.SelectFontFace ("Times", FontSlant.Italic, FontWeight.Normal); // властивості шрифту g.SetFontSize (18); // розмір шрифту g.LineWidth = 1; // товщина осей if ((x0<0) && (0