Đề cương ôn tập môn học Kĩ thuật đồ họa (27-11-2015)

Thảo luận trong 'Xử lý ảnh' bắt đầu bởi Bùi Minh Chiến, 26/11/15.

  1. Bùi Minh Chiến

    Bùi Minh Chiến Member Thành viên BQT Registered

    Tham gia ngày:
    8/11/15
    Bài viết:
    34
    Đã được thích:
    3
    Điểm thành tích:
    8
    Giới tính:
    Nam
    Nghề nghiệp:
    Sinh Viên
    Nơi ở:
    Cẩm Phả Quảng Ninh
    Web:
    N/A

    #1 Bùi Minh Chiến, 26/11/15
    Last edited by a moderator: 26/11/15
    Đề cương ôn tập môn Kĩ thuật đồ họa 26-11-2015​

    Xuống cuối trang để download file đính kèm.

    I – Câu hỏi ôn tập
    1. Khái niệm và ứng dụng của kĩ thuật đồ họa
    2. Trình bày một số chuẩn phần mềm. Vì sao phải chuẩn hóa phần mềm?
    3. Trình bày về không gian mẫu
    4. Trình bày về HSL
    5. Trình bày về HSV
    6. Trình bày í tưởng và phương pháp của thuật toán scanline
    7. Trình bày í tưởng và phương pháp của thuật tô màu theo đường biên
    8. Cmr kết hợp của hai phép tịnh tiến là một phép tịnh tiến
    9. Cmr kết hợp của hai phép tỉ leejbawfng một phép tỉ lệ
    10. Cmr kết hợp của hai phép quay quanh gốc tọa độ bằng một phép quay
    11. Cmr cặp hai phép tỉ lệ có tính giao hoán
    12. Cmr kết hợp phép đồng dạng và phép quay có tính giao hoán
    13. Trình bày í tưởng và phương pháp của thuật Cohen
    14. Vẽ đường tròn bằng giải thuật : -----đơn giản
    15. ........bresenham
    16. ........mid-point
    17. Vẽ đường thẳng bằng giải thuật :----DDA
    18. ........bresenham
    19. ........mid-point
    20. Vẽ ellipse bằng một giải thuật bất kì.

    II – Bài làm

    1. Khái niệm và ứng dụng của kĩ thuật đồ họa
    là những hình ảnh phát sinh ra khi sử dụng máy tính
    u/d:
    - giáo dục: phục vụ mô tả hiện tượng mô phỏng hình ảnh thí nghiệm
    - giải trí
    - xây dựng giao diện người dùng (user interface)
    tạo các biểu đồ trong thương mại, khoa học, kỹ thuật
    tự động hóa văn phòng và chế bản điện tử
    thiết kế với sự trợ giúp của máy tính(CAD_CAM)
    lĩnh vực bản đồ(carto graphy)
    điều khiển các quá trình sản xuất(process control)

    2. Trình bày một số chuẩn phần mềm. Vì sao phải chuẩn hóa phần mềm?
    Do mỗi máy có một đầu ra khác nhau phải chuẩn hóa để phần mêm sử dụng trên các thiết bị khác không bị phát sinh lỗi
    Gồm 7 chuẩn: - GKS(graphics kernel system ) dùng để phát triển các phần mềm đồ họa
    - CGM(computer graphics metafile) xác định các chuẩn cho việc lưu trữ và chuyển đổi hình ảnh
    - CGI(computer graphics interface system ) hệ chuẩn cho các phương pháp giao tiếp với các thiết bị ngoại vi
    - VRML(virtual reality modeling language) ngôn ngữ thực tại ảo, một hướng phát triển công nghệ hiển thị
    - PHIGS(programmers hierarchical interactives graphics standard ): xác định các phương pháp chuẩn cho các mô hình trung gian thực tập và lập trình hướng đối tượng
    - OPENGL: là thư viện đồ họa: tra cứu đồ họa
    - DIRECTX: thư viện đồ họa: tra cứu đồ họa

    3. Trình bày về không gian mẫu
    – RGB miêu tả màu sắc bằng ba thành phần cơ bản R_Red, G_Green, B_Blue
    - Ưu: >chuẩn công nghiệp cho các thao tác đồ họa máy tính
    >có thể chuyển đổi qua lại giữa các không gian màu này với không gian màu khác nhau
    >thao tác tính toán đơn giản
    - Nhược.>giá trị RGB của một màu là khác nhau với các màn hình khác nhau
    >không phù hợp với sự cảm nhận màu sắc của con người

    4. Trình bày về HSL
    HSV(hue, saturation,value) miêu tả màu sắc bằng ba thành phần: hue: màu sắc 00-3600 đo bởi góc quay xung quanh trục đứng với màu đỏ là 00 , màu lục là 1200 , màu lam là 2400. Các màu bổ sung cho hình chóp ở 1800 đối diện với các màu khác
    Ưu :- intuitive(trực giác) choose hue, vary lightness, vary saturation
    Nhược:-chuyển đổi với RGB có sai số(cube stood on end) thay đổi trên các loại màn hình khác nhau
    - Không có cảm nhận đều

    5. Trình bày về HSV
    HLS(hue, lightness, saturation model) không gian mà trực quan
    Ưu:rất trực giác có thể chọn màu, thay đổi độ sáng và thay đổi độ bão hòa
    Nhược: khi chuyển đổi với không gian màu RGB sẽ có sai số (cube stood on end) thay đổi trên các loại màn hình khác nhau, rõ ràng không cảm nhận đều các màu.

    6. Trình bày í tưởng và phương pháp của thuật toán scanline
    – ý tưởng:
    Với mỗi dòng quét ta xác định giao của đa giác và dòng quét rồi tô màu các pixel của đoạn giao đó
    - Phương pháp :
    Hình vẽ:..
    B1: tìm ymin, ymax lần lượt là giá trị nhỏ nhất lớn nhất của tập các tung độ của các điểm đa giác đã cho
    B2: ứng với mọi dòng quét i=k với k= ymin,ymax lặp lại quá trình sau:
    . tìm tất cả các hoành độ giao điểm của dòng quét i=k với các cạnh của đa giác
    . sắp xếp các hoành độ giao điểm tăng dân từ x0,...,xn
    . tô màu các đoạn thẳng trên đường thẳng i=k lần lượt được giới hạn bởi các cặp điểm (x0,x1),(x1,x2),...,(xn-1,xn)

    7. Trình bày í tưởng và phương pháp của thuật tô màu theo đường biên
    - ý tưởng : tô màu theo 4 điểm hoặc 8 điểm lân cận
    - Phương pháp:
    B1: bắt đầu từ một điểm nằm trong vùng cần tô
    B2: ktra vùng lân cận đã được tô hay chưa
    B3: nếu điểm đó không phải điểm đã tô , không phải điểm biên thì ta sẽ tô màu điểm đó
    B4: quá trình này còn được lặp lại cho đến khi không còn điểm cần tô

    8. Cmr kết hợp của hai phép tịnh tiến là một phép tịnh tiến
    thực hiện 2 phép biến đổi tịnh tiến như sau:
    - phép tịnh tiến thứ 1: phép tịnh tiến điểm P(x,y) thành P1(x1,y1)
    Ma trận của phép tịnh tiến biến đổi là
    Mt1=
    Phép tịnh tiến thứ 2: phép tịnh tiến điểm P1(x1,y1)thành P2(x2,y2)
    Ma trận của phép tịnh tiến biến đổi là :

    P2 là ảnh của phép biến đổi tịnh tiến của phép biến đổi kết hợp 2 phép tịnh tiến:
    P2=Mt1.Mt2=
    =
    ð Kết hợp của hai phép tịnh tiến là một phép tịnh tiến(dpcm)

    9. Cmr kết hợp của hai phép tỉ leejbawfng một phép tỉ lệ
    thực hiện 2 phép biến đổi tỉ lệ như sau:
    - phép tỉ lệ thứ 1: phép tỉ lệ điểm P(x,y) thành P1(x1,y1)
    Ma trận của phép tỉ lệ biến đổi là
    Ms1=
    Phép tỉ lệ thứ 2: phép tỉ lệ điểm P1(x1,y1)thành P2(x2,y2)
    Ma trận của phép tỉ lệ biến đổi là :

    P2 là ảnh của phép biến đổi tỉ lệ của phép biến đổi kết hợp 2 phép tỉ lệ:
    P2=Ms1.Ms2= .
    =
    ð Kết hợp của hai phép tỉ lệ là một phép tỉ lệ(dpcm)

    10. Cmr kết hợp của hai phép quay quanh gốc tọa độ bằng một phép quay
    thực hiện 2 phép biến đổi quay như sau:
    - phép quay thứ 1: phép quay điểm P(x,y) thành P1(x1,y1)
    Ma trận của phép quay biến đổi là
    M1=
    Phép quay thứ 2: phép quay điểm P1(x1,y1)thành P2(x2,y2)
    Ma trận của phép quay biến đổi là :

    P2 là ảnh của phép biến đổi quay của phép biến đổi kết hợp 2 phép quay:
    P2=M1.M2=
    =
    ð Kết hợp của hai phép quay là một phép quay(dpcm)

    11. Cmr cặp hai phép tỉ lệ có tính giao hoán
    thực hiện 2 phép biến đổi tỉ lệ như sau:
    - phép tỉ lệ thứ 1: phép tỉ lệ điểm P(x,y) thành P1(x1,y1)
    Ma trận của phép tỉ lệ biến đổi là
    Ms1=
    Phép tỉ lệ thứ 2: phép tỉ lệ điểm P1(x1,y1)thành P2(x2,y2)
    Ma trận của phép tỉ lệ biến đổi là :

    P2 là ảnh của phép biến đổi tỉ lệ của phép biến đổi kết hợp 2 phép tỉ lệ:
    P2=Ms1.Ms2= .
    = =A
    Ms2.Ms1= = =A
    ð Kết hợp của hai phép biến đổi tỉ lệ có tính giao hoán

    12. Cmr kết hợp phép đồng dạng và phép quay có tính giao hoán
    thực hiện 2 phép biến đổi như sau:
    - phép đồng dạng biến điểm P(x,y) thành P1(x1,y1)
    Ma trận của phép biến đổi là:

    - Phép quay thứ 2: phép quay điểm P1(x1,y1)thành P2(x2,y2)
    Ma trận của phép quay biến đổi là :

    P2 là ảnh của phép biến đổi đồng dạng và phép quay:
    P2=Ms1.M2= =???? (1)
    M2.Ms1= =?????? (2)
    Từ (1)và (2)=> kết hợp phép đồng dạng và phép quay có tính giao hoán(dpcm)

    13. Trình bày í tưởng và phương pháp của thuật Cohen
    +, ý tưởng: dựa trên việc đánh mã vùng
    +, phương pháp:
    - Chia mp cần xén thành 9 vùng trong đó 1 vùng làm cửa sổ và 8 vùng xung quanh cửa sổ
    0101
    0100
    0110
    0001
    0000
    WINDOW
    0010
    1001
    1000
    1010
    - Thiết lập mã cho từng vùng. Mã vùng là một số gồm 4 bit nhị phân nó miêu tả vị trí của vùng so với cửa sổ
    - 4
    - 3
    2
    1
    - Dưới
    trên
    Phải
    Trái
    Quy ước:* giá trị “1” tương ứng với bit nào nằm trong mã vùng sẽ chỉ ra rằng điểm đó ở vị trí tương ứng , ngược lại bit đó sẽ được đặt bằng “0”
    *mã vùng của cửa sổ xén : 0000
    - xác định mã của điểm đầu và điểm cuối
    Giả sử điểm cần xét P(x,y). So sánh P(x,y) với các điểm giới hạn bởi cửa sổ (xmax,ymax), (xmin,ymin) để suy ra vị trí của P(x,y) ở đâu thì có mã tương ứng ở đó.
    - Xét vị trí tương đối của cửa sổ so với đường thẳng dựa trên mã mà ta vừa xác định
    o Nếu đường thẳng nằm hoàn toàn bên trong cửa sổ, kết thúc quá trình xén đường thẳng này được hiển thị
    o Nếu đường thẳng nằm hoàn toàn bên ngoài cửa sổ, kết thúc quá trình xén đường thẳng này bị loại bỏ
    o Nếu đường thẳng có khả năng cắt cửa sổ tại ít nhất một điểm. Tìm giao điểm của đường thẳng với các biên của cửa sổ. Kết thúc quá trình xén phần được hiển thị là phần nằm trong cửa sổ, phần bị loại là phần nằm ngoài cửa sổ

    14. Vẽ đường tròn bằng giải thuật : -----đơn giản
    //ve duong tron bang thuat toan don gian//
    CODE:
    Select All
    #include<graphics.h>
    #include<conio.h>
    #include<math.h>
    Void hamve8diem(int xint yint color)
    {
    Putpixel(x,y,color);
    Putpixel(-x,y,color);
    Putpixel(-y,x,color);
    Putpixel(-y,-x,color);
    Putpixel(-x,-y,color);
    Putpixel(x,-y,color);
    Putpixel(y,-x,color);
    Putpixel(y,x,color);
    }
    Void ham_don_gian(int R)
    {
    x=0;
    y=R;
    putpixel(x,y,color);
    for(
    x=0;x<=sqrt(2)*R/2;x++)
                {
                
    =Round(sqrt(R*R-x*x));
                
    hamve8diem(x,y,color);
    }
    }
    Void main()
    {
    Int gr_drive=DETECT gr_mode;
    Initgraph (&gr_drive,& gr_mode,”c:\\bc\\bgi”);
    Ham_don_gian(getmaxx()/2,getmaxy()/2,150,4);
    Getch();
    Closegraph();
    }


    15 ve duong tron bang giai thuat bresebham

    CODE:
    Select All
    #include<graphics.h>
    #include<conio.h>
    Void bresenham_circle(int xcint ycint Rint color)
    {
    Int x,y,d;
    x=0;
    y=R;
    d=3-2*R;
    while(
    x<=y)
                {
                
    Putpixel(xc+x,yc+y,color);
    Putpixel(xc-x,yc+y,color);
                
    Putpixel(xc-y,yc+x,color);
    Putpixel(xc-y,yc-x,color);
    Putpixel(xc-x,yc-y,color);
    Putpixel(xc+x,yc-y,color);
    Putpixel(xc+y,yc-x,color);
    Putpixel(xc+y,xc+x,color);
    If(
    d<0)
                
    d+=4*x+6;
    else{
                
    d+=4*(x-y)+10;
                
    y--;
          }
    x++;
    }
    }
    Void main
    {
    Int gr_drive=DETECT gr_mode;
    Initgraph (&gr_drive,& gr_mode,”c:\\bc\\bgi”);
    bresenham_circle(getmaxx()/2,getmaxy()/2,150,4);
    Getch();
    Closegraph();
    }

    16. ve duong tron bang giai thuat mi_point
    CODE:
    Select All
    #include<graphics.h>
    #include<conio.h>
    Void mid_circle(int xcint ycint Rint color)
    {
    Int x,y,d;
    x=0;
    y=R;
    d=1-R;
    while(
    x<=y)
                {
                
    Putpixel(xc+x,yc+y,color);
    Putpixel(xc-x,yc+y,color);
                
    Putpixel(xc-y,yc+x,color);
    Putpixel(xc-y,yc-x,color);
    Putpixel(xc-x,yc-y,color);
    Putpixel(xc+x,yc-y,color);
    Putpixel(xc+y,yc-x,color);
    Putpixel(xc+y,xc+x,color);
    If(
    d<0)
                
    d+=2*x+3;
    else{
                
    d+=2*(x-y)+5;
                
    y--;
          }
    x++;
    }
    }
    Void main
    {
    Int gr_drive=DETECT gr_mode;
    Initgraph (&gr_drive,& gr_mode,”c:\\bc\\bgi”);
    mid_circle(getmaxx()/2,getmaxy()/2,150,4);
    Getch();
    Closegraph();
    }

    17.ve duong thang bang giai thuat DDA

    CODE:
    Select All
    #include<graphics.h>
    #include<conio.h>
    #include<math.h>
    #define Round(y)(int)(y+0.5)
    Int colorRED;
    Void linedda(int x1int y1int x2int y2)
    {
    Int i;
    Int x=x1;
    Float y=y1;
    Float m=(float)(y2-y1)/(x2-x1);
    Putpixel(x,y,color);
    Putpixel(-x,y,color);
    Putpixel(-y,x,color);
    Putpixel(-y,-x,color);
    Putpixel(-x,-y,color);
    Putpixel(x,-y,color);
    Putpixel(y,-x,color);
    Putpixel(y,x,color);
    For(
    i=x1;i<x2;i++)
    {
    x++;
    y=Round(y+m);
    putpixel(x,y,color);
    }
    }
    Void main
    {
    Int gr_drive=DETECT gr_mode;
    Initgraph (&gr_drive,& gr_mode,”c:\\bc\\bgi”);
    Setbkcolor(WHITE);
    linedda(50,100,300,200);
    Getch();
    Closegraph();
    }

    18. ve duong thang bang giai thuat bresenham
    CODE:
    Select All
    #include<graphics.h>
    #include<conio.h>
    Void bre_line(int x1int y1int x2int y2int c)
    {
    Int xydxdyp, const 1, const 2;
    y=y1;
    dx=x2-x1;
    dy=y2-y1;
    p=2*dy-dx;
    const 
    1=2*dy;
    const 
    2=2*(dy-dx);
    for(
    x=x1;x<=x2;x++)
    {
    Putpixel(x,y,c);
    If(
    p<0)
    P+=const 1;//p=p+2dy
    Else
                {
                
    p+=const 2;//p=p+2dy-2dx
                
    y++;
    }
    }
    }
    Void main
    {
    Int gr_drive=DETECT gr_mode;
    Initgraph (&gr_drive,& gr_mode,”c:\\bc\\bgi”);
    bre_line(getmaxx()/2,getmaxy()/2,4);
    Getch();
    Closegraph();
    }

    19. ve duong thang bang giai thuat mid_point

    CODE:
    Select All
    #include<graphics.h>
    #include<conio.h>
    Void mid_line(int x1int y1int x2int y2int c)
    {
    Int xydxdyd;
    y=y1;
    dx=x2-x1;
    dy=y2-y1;
    d=dy-dx/2;
    for(
    x=x1;x<=x2;x++)
    {
    Putpixel(x,y,c);
    If(
    d<=0)
    d=d+dy;
    Else
                {
                
    y++;
                
    d=d+dy-dx;
    }
    }
    }
    Void main
    {
    Int gr_drive=DETECT gr_mode;
    Initgraph (&gr_drive,& gr_mode,”c:\\bc\\bgi”);
    mid_line(getmaxx()/2,getmaxy()/2,4);
    Getch();
    Closegraph();
    }

    20.ve elip bang giai thuat bat ki
    CODE:
    Select All
    #include<graphics.h>
    #include<conio.h>
    #define ROUND(a)((long)(a+0.5))
    Void plot(int xcint ycint xint yint color)
    {
    Putpixel(xc+x,yc+y,color);
    Putpixel(xc-x,yc+y,color);
    Putpixel(xc+x,yc-y,color);
    Putpixel(xc-x,yc-y,color);
    }
    Void mid_ellipse(int xcint ycint a,int bint color)
    {
    Long x,yfx,fya2,b2,p;
    x=0;
    y=b;
    a2=a*a;
    b2=b*b;
    fx=0;
    fy=2*a2*y;
    plot(xc,yc,x,y,color);
    p=ROUND(b2-(a2*b)+(0.25*));
    while(
    fx<fy)
    {
    x++;
    fx+=2*b2;
    if(
    p<0)
                
    p+=b2*(2*x+3);
    else{
                
    y--;
                
    p+=b2*(2*x+3)+a2*(-2*y+2);
                
    fy-=2*a2;}(b2*(x+0.5)+a2*(y-1)*(y-1)-a2*b2);
    while(
    y>0)
    y--;
    fy-=2*a2;
    if(
    p>0)
                
    p+=a2*(3-2*y);
    else{
                
    x++;
                
    fx+=2*b2;
                
    p+=b2*(2*x+2)+a2*(-2*y+3);
    }
    Plot(xc,yc,x,y,color);
    }
    }
    Void main()
    {
    Int gr_drive=DETECT gr_mode;
    Initgraph (&gr_drive,& gr_mode,”c:\\bc\\bgi”);
    mid_ellipse(getmaxx()/2,getmaxy()/2,150,80,4);
    Getch();
    Closegraph();
    }
    Nguồn: cnttqn.com
     

    Tập tin đính kèm:


    Bình Luận Bằng Facebook

    data-href="https://cnttqn.com/threads/de-cuong-on-ta-p-mon-ho-c-ki-thua-t-do-ho-a-27-11-2015.490.html"