Trình diễn code vẽ hình lưới bằng C++

March 07, 2023
Hướng dẫn vẽ hình lưới ma trận bằng C++ Kỹ thuật đồ họa



Code tham khảo:
Code 1:




/*
Name: Tran Lam Anh
Copyright: None
Share to: https://gimi.vn/
*/

#include<stdio.h>
#include<graphics.h>
#include<dos.h>
void matrix(int numc, int numl, int high, int width, int sizec, int sizel, int timedelay, int sizeline)
{
    setlinestyle(0,0,sizeline);
    for(int i=0;i<=numc;i++)
        {
        setcolor((i<=7)?i:((i%7==0)?5:i%7));
        line(i*sizec,0,i*sizec,high);
        delay(timedelay);
        }
    for(int i=0;i<=numl;i++)
        {
         setcolor((i<=7)?i:((i%7==0)?5:i%7));
        line(0,i*sizel,width,i*sizel);
        delay(timedelay);
        }
}
void diagonal(int numc, int numl, int high, int width, int sizec, int sizel, int timedelay, int sizeline)
{
        setlinestyle(0,0,sizeline);
        int xs=0,ys=0,xe=0,ye=0;
           for (int i=1;i<=(numl+numc-1);i++)
           {
               setcolor((i<=7)?i:((i%7==0)?5:i%7));
               (xs<numc)?xs++:ys++;
               (ye<numl)?ye++:xe++;
               line(xs*sizec,ys*sizel,xe*sizec,ye*sizel);
               delay(timedelay);
           }
            xs=numc; ys=0; xe=numc; ye=0;
            for (int i=1;i<=(numl+numc-1);i++)
           {
                setcolor((i<=7)?i:((i%7==0)?5:i%7));
                (xs>0)?xs--:ys++;
                (ye<numl)?ye++:xe--;
                line(xs*sizec,ys*sizel,xe*sizec,ye*sizel);
               delay(timedelay);
           }
}
main()
{
    int numc,numl,width,high;
    printf("\t- Kich thuoc cua so (WIDTH x HIGH): "); scanf("%d x %d",&width,&high);
    printf("\t- Nhap kich thuoc luoi (ROW x COLUMN): "); scanf("%d x %d",&numl,&numc);
    initwindow(width,high);
    int sizec=width/numc, sizel=high/numl, time=300, sizeline=3;
    matrix(numc, numl, high, width, sizec, sizel, time, sizeline);
    diagonal(numc, numl, high, width, sizec, sizel, time, sizeline);
    getch();
}



Code 2:



/*
Name: Tran Lam Anh
Copyright: None
Share to: https://gimi.vn/
Tag: trinh dien, hinh luoi, so do, ve hinh, do hoa, hinh vuong, hinh chu nhat, luoi vuong, luoi chu nhat
*/

#include<stdio.h>
#include<graphics.h>
#include<dos.h>
void paint(int numr, int numc, int sizel, int sizer, int time, int border)
{
    setlinestyle(0,0,border);
    for (int i=0;i<numr;i++)
    {
        for(int j=0;j<numc;j++)
        {
            setcolor((j+1<=7)?j+1:(((j+1)%7==0)?5:(j+1)%7));
            line(j*sizel,i*sizer,j*sizel,(i+1)*sizer);
            line(j*sizel,i*sizer,(j+1)*sizel,i*sizer);
            line((j+1)*sizel,i*sizer,(j+1)*sizel,(i+1)*sizer);
            line((j+1)*sizel,(i+1)*sizer,j*sizel,(i+1)*sizer);
            line(j*sizel,i*sizer,(j+1)*sizel,(i+1)*sizer);
            line((j+1)*sizel,i*sizer,j*sizel,(i+1)*sizer);
             delay(time);
        }
    }
}
main()
{
    int high,width,numr,numc;
    printf("\t- Nhap vao kich thuoc cua so (WIDTH x HIGH): ");
    scanf("%d x %d",&width,&high);
    printf("\t- Nhap kich thuoc luoi (ROW x COLUMN): ");
    scanf("%d x %d",&numr,&numc);
    initwindow(width,high);
    int sizer=high/numr, sizel=width/numc;
    int time=100, border=2;
    paint(numr,numc,sizel,sizer,time,border);
    getch();
}






Tags: ve hinh luoi, ve doa hoa, lap trinh, do hoa, c++ do hoa, hinh vuong, luoi vuong, luoi chu nhat, hinh chu nhat