Vẽ đường thẳng(Thuật toán MidPoint)


Diễn đàn chia sẻ kiến thức, kinh nghiệm về IT và cuộc sống!
 
Trang ChínhGalleryTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập
Top posters
Sakura (1124)
 
hotboy (705)
 
Già Làng (373)
 
con_ca_nho90 (289)
 
that_true (154)
 
theanhkkt (143)
 
phamay (137)
 
lovelonelyman (134)
 
o0ovioletstaro0o (128)
 
stevenhung (122)
 
Âm - Dương lịch
Clock
Logo
11TH02 Pro!
Liên kết
Tin tức 60s
Tin công nghệ
Thời sự 24h
Game Moblie

Share | 
 

 Vẽ đường thẳng(Thuật toán MidPoint)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Già Làng


avatar

Thú CƯng :
Nam Libra

Số bài viết : 373
Điểm : 2200708
Được cảm ơn : 53
Ngày sinh : 20/10/1987
Tham gia ngày : 16/03/2010
Tuổi : 31
Đến từ : Bình Dương
Ngề nghiệp : Sinh Viên
Chăm ngôn : Cơm Cha - Áo Mẹ!

Bài gửiTiêu đề: Vẽ đường thẳng(Thuật toán MidPoint)   10/10/2010, 23:36

Đây là thuật toán MidPoint dùng để vẽ đường thẳng, cái có nhu cầu tham khảo thì sopy về test nha!!!
Code:


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>

void MidPoint(int x1,int y1,int x2,int y2)
   {
      int x=x1;
      int y=y1;
      int dx=x2-x1;
      int dy=y2-y1;
      putpixel(x1,y1,4);
      if (dy<dx)
         {
            float P=dy-dx/2;
            while (x<x2)
               {

                  if (P>=0)
                     {
                        putpixel(x+1,y+1,15);
                        y++;
                        P+=dy-dx;
                     }
                  else
                     {
                        putpixel(x+1,y,15);
                        P+=dy;
                     }
                  x++;
               }
         }
      else
         {
            float P=dx/2-dy;
            while (y<=y2)
               {
                  if (P>=0)
                     {
                        putpixel(x+1,y+1,15);
                        x++;
                        P+=dx-dy;
                     }
                  else
                     {
                        putpixel(x,y+1,15);
                        P+=dx;
                     }
                  y++;
               }
         }

      putpixel(x2,y2,10);

   }

void main()
   {
      clrscr();
      int x1,y1,x2,y2;
      int mh=9;
      int mode=1;
      initgraph(&mh,&mode,"E:\\BORLANDC\\BGI");
      setbkcolor(0);
      cout<<"    Nhap vao toa do cua diem dau:"; cin>>x1>>y1;
      cout<<"    Nhap vao toa do cua diem cuoi:"; cin>>x2>>y2;
      MidPoint(x1,y1,x2,y2);
      getch();
   }

_________________________________________________
Khách viếng thăm đọc rồi thì thanks đi chứ!!
Về Đầu Trang Go down
Xem lý lịch thành viên http://itworld.4rumer.com
vanthuanitdlu




Nam Leo

Số bài viết : 2
Điểm : 2
Được cảm ơn : 0
Ngày sinh : 01/08/1990
Tham gia ngày : 25/09/2011
Tuổi : 28
Đến từ : Đăk Nông

Bài gửiTiêu đề: Re: Vẽ đường thẳng(Thuật toán MidPoint)   8/10/2011, 23:23

cũng hay đó nhưng trên giáo trình đã có nhưng đưa lên ae chém cũng hay
Về Đầu Trang Go down
Xem lý lịch thành viên vanthuan_itdlu@yahoo.com
con_ca_nho90

Member Nhiệt Tình


Member Nhiệt Tình
avatar

Thú CƯng :
Nam Aquarius

Số bài viết : 289
Điểm : 329
Được cảm ơn : 4
Ngày sinh : 17/02/1990
Tham gia ngày : 05/05/2010
Tuổi : 28
Đến từ : Nhà hàng xóm
Ngề nghiệp : click chuột định giang sơn :D
Chăm ngôn : Giang hồ hiểm ác không bằng mạng lag thất thường

Bài gửiTiêu đề: Re: Vẽ đường thẳng(Thuật toán MidPoint)   11/10/2011, 23:07

Già Làng đã viết:
Đây là thuật toán MidPoint dùng để vẽ đường thẳng, cái có nhu cầu tham khảo thì sopy về test nha!!!
Code:


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>

void MidPoint(int x1,int y1,int x2,int y2)
   {
      int x=x1;
      int y=y1;
      int dx=x2-x1;
      int dy=y2-y1;
      putpixel(x1,y1,4);
      if (dy<dx)
         {
            float P=dy-dx/2;
            while (x<x2)
               {

                  if (P>=0)
                     {
                        putpixel(x+1,y+1,15);
                        y++;
                        P+=dy-dx;
                     }
                  else
                     {
                        putpixel(x+1,y,15);
                        P+=dy;
                     }
                  x++;
               }
         }
      else
         {
            float P=dx/2-dy;
            while (y<=y2)
               {
                  if (P>=0)
                     {
                        putpixel(x+1,y+1,15);
                        x++;
                        P+=dx-dy;
                     }
                  else
                     {
                        putpixel(x,y+1,15);
                        P+=dx;
                     }
                  y++;
               }
         }

      putpixel(x2,y2,10);

   }

void main()
   {
      clrscr();
      int x1,y1,x2,y2;
      int mh=9;
      int mode=1;
      initgraph(&mh,&mode,"E:\\BORLANDC\\BGI");
      setbkcolor(0);
      cout<<"    Nhap vao toa do cua diem dau:"; cin>>x1>>y1;
      cout<<"    Nhap vao toa do cua diem cuoi:"; cin>>x2>>y2;
      MidPoint(x1,y1,x2,y2);
      getch();
   }
ông chả cải tiến gì đưa y cái code trong giáo trình lên mà kêu a e test cũng dzui tính quá hen Very Happy
Về Đầu Trang Go down
Xem lý lịch thành viên https://plus.google.com/u/0/?hl=vi jeennguyen@ymail.com
thayloimuonnoi




Nam Gemini

Số bài viết : 1
Điểm : 1
Được cảm ơn : 0
Ngày sinh : 05/06/1991
Tham gia ngày : 20/10/2011
Tuổi : 27
Đến từ : thiên đường

Bài gửiTiêu đề: Re: Vẽ đường thẳng(Thuật toán MidPoint)   21/10/2011, 15:35

chủ tớt chỉ cách add thư viện graphics.h vào c free cái đi.mình copy về mà chạy không được ?
Về Đầu Trang Go down
Xem lý lịch thành viên
Mr.Cuong


avatar

Thú CƯng :
Nam Aquarius

Số bài viết : 117
Điểm : 154
Được cảm ơn : 5
Ngày sinh : 02/02/1990
Tham gia ngày : 22/02/2011
Tuổi : 28
Đến từ : Đâu

Bài gửiTiêu đề: Re: Vẽ đường thẳng(Thuật toán MidPoint)   21/10/2011, 18:19

Theo tui thì C free chạy cái này không ổn lắm. Cái này chạy trên C++ đấy nhé. Very Happy

Còn nếu xài C++ thì bạn google search thêm: "Chạy đồ họa trong C++" rồi xem nó cấu hình Graphics như thế nào nhé. Chúc vui.

_________________________________________________
[You must be registered and logged in to see this link.]
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: Vẽ đường thẳng(Thuật toán MidPoint)   

Về Đầu Trang Go down
 

Vẽ đường thẳng(Thuật toán MidPoint)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
IT World! :: HỌC TẬP :: HỌC KỲ V :: Đồ Họa Máy Tính-