Diễn đàn sinh viên công nghệ thông tin, chia sẻ, giao lưu, học hỏi. Kết nối ... Những ngôn ngữ cơ bản mà bạn cần phải nắm nếu muốn thành 1 lập trình viên ...VuaTenMien.Com
Thứ Bảy, 17 tháng 8, 2013
Các thuật toán vẽ đoạn thẳng trong C/C++
1. Thuật toán vẽ đoạn thẳng thông thường:
void dline(int x1,int y1, int x2,int y2, int color) {
float y;
int x;
for (x=x1; x<=x2; x++) {
y = y1 + (x-x1)*(y2-y1)/(x2-x1) ;
putpixel(x, Round(y), color );
}
}
2. Thuật toán DDA (Digital Differential Analizer):
void ddaline (int x1,int y1,int x2,int y2,int c){
int x=x1;
float y=y1;
float k=(float)(y2-y1)/(x2-x1);
putpixel(x,round(y),c);
for(int i=x1;i<=x2;i++) {
x++;
y=y+k;
putpixel(x,round(y),c);
}
}
3. Thuật toán Bresenham
/*Thuat toan Bresenham ve dthang (0<k<1) */
void Bre_line(int x1, int y1, int x2, int y2, int c)
{int x, y, dx, dy,p,const1,const2;
y = y1;
dx = x2 - x1;
dy = y2 - y1;
p = 2*dy - dx;
const1 = 2*dy;
const2 = 2*(dy-dx);
for (x=x1; x<=x2; x++) {
putpixel(x, y, c);
if (p < 0)
p += const1; // p=p + 2dy
else {
p +=const2; //p=p+2dy-2dx
y++;
}
}
}
4. Thuật toán Trung điểm - Midpoint
/* Thuat toan Midpoint de ve doan thang (0<k<1) */
void Mid_line(int x1, int y1, int x2, int y2, int c){
int x, y, dx, dy,d;
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;
}}
}
Đăng ký:
Đăng Nhận xét (Atom)
Bài đăng phổ biến
-
import java.io.*; public class Test_Ngto{ public static void main(String args[]){ InputStream is = System.in; ...
-
Website-Watcher 2011 sẽ theo dõi và thông báo cho bạn biết mỗi khi trên website, forum, blog,… ưa thích có tin bài mới. Nhờ Website-Watcher...
-
<%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespa...
-
<%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespa...
-
<%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespa...
-
TÀI LIỆU TỔNG HỢP Tài Liệu Đại Học Bách Khoa Hà Nội Tài Liệu Đại Học Bách Khoa Đà Nẵng Tài Liệu Đại Học Bách Khoa HCM Tài Liệu FPT ...
-
So sánh 2 cách tạo stack bằng mảng và bảng kiểu cấu trúc nhé Mảng: http://codepad.org/rTA0NJgL #include <stdio.h> #include<co...
-
import java.io.*; public class ReadLine{ public static void main(String args[]){ InputStreamReader isr = new InputStreamReader...
-
Vacationnews.Xyz Vacationsnews.Xyz Vacationsworld.Xyz Vantagecreditunion.Xyz Venturenews.Xyz Ventureworld.Xyz Vermontattorney.Xyz Vermontho...
-
1. Hãy xây dựng lớp Diem cùng với các đối tượng điểm trong mặt phẳng và các phương thức sau: - Phương thức khởi tạo - Phương...

Không có nhận xét nào:
Đăng nhận xét