markdown:
A3_Pro Forum
~[ MEMORIES ]~
![]()
![]()
Moderator
![]()
![]()
![]()
![]()
![]()
![]()
Ông có yêu cầu game gì...Nói đê, tui bảo thằng admin tạo thêm box
![]()
![]()
![]()
![]()
viết gì nhiều dữ ta, chữ đỏ làm biến đọc ghê
![]()
![]()
![]()
![]()
![]()
dota choi phuc tap wa
anh chi em choi dota di
![]()
Lần sau bạn chú ý sử dụng Tiếng Việt có dấu khi nói chuyện trên diễn đàn nha.
![]()
![]()
![]()
![]()
![]()
![]()
đồgn ý với em để anh nói admin, àh mọi người choi7 dota ìm thửc ó cách nào phá con heo của thằn gphủ không ?9 admin Long tìm thửc oi )
_________________
![]()
NOBODY
CAN DEFEAT HIM..............!!!!!!
![]()
![]()
![]()
Thua........ cả 4rum chỉ có 1 game duy nhất WarCraft
![]()
![]()
![]()
![]()
từưt 2, đểt a kêu thằn gadmin, àh hà hay mi tự quảng cáo, rồ ikêu nó cho mi làm admin rồi sửa chửa nhữ gnthưcá n26 đi, mi
![]()
_________________
![]()
NOBODY
CAN DEFEAT HIM..............!!!!!!
![]()
![]()
![]()
Há há, thôi pác Mod ạh....... e hok khoái mí cái này. Nhường pác ạh
![]()
![]()
![]()
A3PRO WARCRAFT phải phát dương quang đại chớ. Hehe
![]()
![]()
![]()
ê ta thấy là mình nên làm gì đi chứ làm kiểu này bình thườg quá àh
_________________
![]()
NOBODY
CAN DEFEAT HIM..............!!!!!!
![]()
## Hướng dẫn Dota toàn tập
![]()
|» |
»
»
»
»

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

Content-Type: text/html; charset=utf-8

Connection: close

P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"

Cache-Control: post-check=0, pre-check=0

Pragma: no-cache

X-Content-Type-Options: nosniff

X-XSS-Protection: 1; mode=block

Content-Encoding: gzip


markdown:
## Chào mừng quý vị đến với Thư viện Bài giảng điện tử.
Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tư liệu của Thư viện về máy tính của mình.
Nếu chưa đăng ký, hãy
**hoặc** [đăng ký thành viên tại đây](/user/register) [xem phim hướng dẫn tại đây](http://daotao.violet.vn/Data/Library/1/Index.html)
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay ô bên phải.
## Đồ họa máy tính
(
*Tài liệu chưa được thẩm định*) **Nguồn:**ĐH Tin Đồng Nai **Người gửi:** [Vĩnh Hảo](/user/show/id/458222) **Ngày gửi:**23h:03' 24-03-2009 **Dung lượng:**3.5 MB **Số lượt tải:**365 **Số lượt thích:**0 người
Thành Viên Trong Nhóm
Nguyễn Vĩnh Hảo 0985401816
Nguyễn Thị Hồng Linh 0987741704
Lê Thụy Hoài Phương 0955002770
Phạm Thị Thủy 0929043688
Nguyễn Lê Cẩm Ngọc 0985024152
ĐỒ HỌA MÁY TÍNH
Tìm hiểu và cài đặt các thuật toán vẽ đường cho trường hợp tổng quát
Input:
(x1,y1)(x2,y2)
Output :
{(x1,y1)(x2,y2)….(xn,yn)}
là những điểm sáng nằm trên đường thẳng.
(x1,y1)
(X2,y2)
(x1,y1)
(x2,y2)
1.Tăng chậm
2.Tăng nhanh
3. Giảm chậm ngược
4. Giảm nhanh ngược
- Đối tượng mô tả trong hệ tọa độ thực là đối tượng liên tục, còn đối tượng trong hệ tọa độ thiết bị là đối tượng rời rạc. Nên cần thực hiện việc rời rạc hóa và việc nguyên hóa một cách tối uư nhất.
Từ đó hình thành các thuật toán khác nhau với những uư thế riêng của nó để tối uư về mặt tốc độ và sự chính xác.
Digital Differential Analyzer
Để hiển thị trên lưới nguyên được liền nét các điểm có tọa độ (xi+1; yi+1) sẽ phải chọn 1 trong 8 điểm có tọa độ (xi + 1;yi + 1 )
3
5
8
2
7
6
4
1
Thuật toán DDA là một thuật toán tính toán các điểm vẽ dọc theo đường thẳng dựa vào hệ số góc của phương trình đường thẳng y = mx + b
Trường hợp 1
Đoạn thẳng tăng chậm với điểm đầu A(x1;y1) ở bên trái và điểm cuối B(xk; yk) ở bên phải và trường hợp đối xứng qua ox
A
B
y = mx + b (0 < |m| <=1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x1 < xk ;
xi+1 = xi +1 ;
y = yi + m ; //đã cải tiến y
yi+1 = Round(y);
A
B
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trương hợp 1
begin
x
end
x=x+1;
y=y+m;
Putpixel(x,Round(y),c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 1
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) < 1)
{
int x = x1;
float y = y1;
putpixel(x, Round(y),c);
while (x < x2)
{
x++;
y = y+m;
putpixel(x, Round(y), c);
}
}
}
Trường hợp 2
Đoạn thẳng tăng nhanh với điểm đầu A(x1;y1) ở bên trái và điểm cuối B(xk; yk) ở bên phải và trường hợp đối xứng qua oy
A
B
y = mx + b (|m| > 1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y1 < yk ;
x = xi +1/m;
xi+1 = Round(x) ;
yi+1 = yi +1;
A
B
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trường hợp 2
begin
y
end
x=x+1/m;
y=y+1;
Putpixel(Round(x),y,c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 2
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) > 1)
{
float x = x1;
int y = y1;
putpixel(Round(x),y,c);
while (y < y2)
{
x = x+1/m ;
y ++;
putpixel(Round(x), y, c);
}
}
}
Trường hợp 3
Đoạn thẳng giảm chậm với điểm đầu A(x1;y1) ở bên phải trên và điểm cuối B(xk; yk) ở bên trái dưới và đối xứng của nó qua ox
y = mx + b (0 < |m| <=1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x1 > xk ;
xi+1 = xi -1 ;
y = yi - m ;
yi+1 = Round(y);
B
A
B
A
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trường hợp 3
begin
x >x2
end
x=x-1;
y=y-m;
Putpixel(x,Round(y),c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 3
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) < 1)
{
int x = x1;
float y = y1;
putpixel(x, Round(y),c);
while (x > x2)
{
x --;
y = y - m;
putpixel(x, Round(y), c);
}
}
}
Trường hợp 4
Đoạn thẳng giảm nhanh với điểm đầu A(x1;y1) ở bên phải và điểm cuối B(xk; yk) ở bên trái và đối xứng của nó qua oy
A
B
y = mx + b (m > 1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y1 > yk ;
x = xi -1/m;
xi+1 = Round(x) ;
yi+1 = yi -1;
A
B
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trường hợp 4
begin
y > y2
end
x=x-1/m;
y=y-1;
Putpixel(Round(x),y,c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 4
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) > 1)
{
float x = x1;
int y = y1;
putpixel(Round(x),y,c);
while (y > y2)
{
x = x-1/m ;
y --;
putpixel(Round(x), y, c);
}
}
}
Luư đồ thuật toán DDA trong tất cả các trường hợp vẽ đường thẳng
begin
Dx = x2 – x1
Dy = y2 – y1
abs(Dx) > abs(Dy)
xinc = Dx / step
yinc = Dy / step
x = x1; y = y1
putpixel (x, y,c )
end
NO
YES
step = abs(Dx)
step = abs(Dy)
k<= step
YES
NO
YES
x = x + xinc
y = y + yinc
Putpixel(Round(x),Round(y),c)
NO
Cài đặt thuật toán DDA trong trường hợp Tổng quát
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color color){
double x,y; int step;
if(abs(x2-x1)>abs(y2-y1))
step=abs(x2-x1);
else
step=abs(y2-y1);
x=(double)x1;
y=(double)y1;
putpixel(Round(x),Round(y),color);
double m=(double)(x2-x1)/step;
double n=(double)(y2-y1)/step;
for(double i=1;i<=step;i++)
{
x+=m;
y+=n;
putpixel(Round(x),Round(y),color);
}
}
Ví dụ Demo vẽ đường thẳng từ điểm A(2, 10) đến điểm B(21, 16) (0 < m < 1) điểm A(9, 1) đến điểm B(17,12) (m > 1) bằng thuật toán DDA.
A (2, 10) đến B (21, 1) m= 6/19 = 0,316 < 1
i xi yi y
0 2 10 10
3 10 10,316
4 11 10,632
5 11 10,948
6 11 11,264
7 12 11,580
8 12 11,896
9 12 12,212
10 13 12,528
11 13 12,844
12 13 13,160
13 13 13,476
14 14 13,792
15 14 14,108
16 14 14,424
17 15 14,740
18 15 15,056
19 15 15,372
20 16 15,688
21 16 16,004
A ( 9,1 ) đến B (17 , 12 ) m= 11/8 = 1.375> 1
1/m = 0,73
i xi yi x
0 9 1 9
10 2 9,73
10 3 10,46
11 4 11,19
12 5 11,92
13 6 12,65
13 7 13,38
14 8 14,11
15 9 14,84
16 10 15,57
16 11 16,30
17 12 17,03
Tất cả các trường hợp của đoạn thẳng còn lại được vẽ dựa trên thuật toán DDA bằng việc hoán đổi vị trí của điểm đầu và điểm cuối hoặc lấy đối xứng qua các trục tọa độ của 4 trường hợp trên.
Việc sử dụng công thức để tính giá trị y tại mỗi bước đã giúp cho thuật toán DDA nhanh hơn hẳn so với cách tính y từ phương trình y=mx +b do khử được phép nhân trên số thực. Tuy nhiên, việc cộng dồn giá trị thực m vào y có thể sẽ tích lũy sai số làm cho hàm làm tròn có kết quả sai dẫn tới việc xác định vị trí của điểm vẽ ra bị chệch hướng so với đường thẳng thực. Điều này chỉ xảy ra khi vẽ đoạn thẳng khá dài.
Tuy đã khử được phép nhân số thực nhưng thuật toán DDA vẫn còn bị hạn chế về mặt tốc độ do vẫn còn phép toán cộng số thực và làm tròn. Có thể khắc phục thao tác cộng số thực m và làm tròn trong thuật toán bằng cách nhận xét m=Dy/Dx với Dy, Dx là các số nguyên.
- Thuật toán Bresenham đưa ra cách chọn yi+1 là yi hay yi+1 theo một hướng khác sao cho có thể tối ưu hóa về mặt tốc độ so với thuật toán DDA. Vấn đề mấu chốt ở đây là làm thế nào để hạn chế tối đa các phép toán trên số thực trong thuật toán.
- Ý tưởng chính của thuật toán Bresenham là việc so sánh khỏang cách giữa tọa độ y thực tại vị trí xi+1 với các tọa độ y nguyên trên và dưới nó.
*** Phương pháp của thuật toán Bresenham
Gọi (xi+1,y) là điểm thuộc đoạn thẳng thực.
Ta có: y = m( xi+1) + b. (0 < m <1)
Xét các hiệu khoảng cách của tung độ thực y so với các tung độ nguyên yi và yi+1 để chọn một điểm là S(xi +1, yi) hay P( xi + 1,yi + 1) gần với điểm thực nhất.
Đặt d1 = y - yi
d2 = ( yi+ 1) - y
- Nếu d1- d2 < 0: Chọn điểm S, tức là yi+1=yi.
- Nếu d1- d2 ≥ 0: Chọn điểm P, tức là yi+1 =yi + 1.
Xây dựng pi
Xét pi = Δx (d1 - d2) với Δx= x2- x1; Δy= y2 –y1;
Ta có : d1 - d2 = 2 yi+1 - 2yi - 1 = 2m(xi+1) + 2b - 2yi - 1
=> pi = Δx (d1 - d2) = Δx[2m(xi+1) + 2b - 2yi - 1] = Δx[2 Δy/Δx (xi+1) + 2b - 2yi - 1]
= 2Δy(xi+1) - 2Δx.yi + Δx(2b - 1) = 2Δy.xi - 2Δx.yi+ 2Δy + Δx(2b - 1)
Vậy C = 2Δy + Δx(2b - 1) = Const
=> pi= 2Δy.xi - 2Δx.yi+ C
Nhận xét rằng nếu tại bước thứ i ta xác định được dấu của Pi thì xem như ta xác định
được điểm cần chọn ở bước (i+1). Ta có :
pi +1 - pi= (2Δy.xi+1 - 2Δx.yi+1+ C) - (2Δy.xi - 2Δx.yi+ C )
=> Pi +1 = pi + 2Δy - 2Δx ( yi+1 - .yi)
- Nếu pi< 0 : chọn điểm S, tức là yi +1= yi và pi +1 = pi + 2Δy.
- Nếu pi≥ 0 : chọn điểm P, tức là yi +1= yi +1 và pi +1 = pi + 2Δy - 2Δx
- Giá trị p0được tính từ điểm vẽ đầu tiên (x0,y0) theo công thức :
P0= 2Δy.x0 - 2Δx.y0+ C
Do (x0,y0) là điểm nguyên thuộc về đoạn thẳng nên ta có : y0 = m .x0+ b = Δy/Δx.x0 + b
Thế vào phương trình trên ta được :
p0= 2Δy - Δx
Trường hợp 1
|Dy|<=|Dx|
A
B
A
B
B
A
B
A
Các dạng đường thẳng thỏa |yB - yA| <= |xB – xA|
Giải thuật trong trường hợp 1:
|Dy|<=|Dx|;
Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int p = 2 * Dy – Dx;
int const1 = 2 * Dy, const2 = 2 * (Dy-Dx);
int x = x1, y = y1;
putpixel(x, y, color);
int dx =(Dx>0)? 1:-1;
int dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x!=x2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
y+=dy;
x+=dx;
Putpixel(x,y,color);
Luư đồ thuật toán Bresenham trường hợp 1: |Dy|<=|Dx|
begin
p = 2Dy - Dx;
const1=2Dy; const2=2(Dy-Dx);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
x != x2
p+=const1;
end
NO
YES
p < 0
p+=const2;
y + = dy;
x += dx;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật tóan Bresenham trong trường hợp 1
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dy – Dx ; int const1 = 2 * Dy , const2 = 2 * (Dy-Dx);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) <= abs(Dx)) {
while(x != x2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
y += dy;
}
x += dx;
putpixel(x,y,color);
}
}
}
A
B
A
B
B
A
A
B
Trường hợp 2
|Dy|<=|Dx|
Các dạng đường thẳng thỏa |Dy| > |Dx|
Giải thuật trong trường hợp 2
|Dy|>|Dx|;
Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int x = x1, y = y1;
int p = 2 * Dx – Dy;
int const1 = 2 * Dx, const2 = 2 * (Dx-Dy);
putpixel(x, y, color);
int dx =(Dx>0)? 1:-1;
int dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y!=y2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
x+=dx;
y+=dy;
Putpixel(x,y,color);
Luư đồ thuật toán Bresenham trong trường hợp 2: |Dy|>|Dx|
begin
p = 2Dx - Dy;
const1=2Dx; const2=2(Dx-Dy);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
y != y2
p+=const1;
end
NO
YES
p < 0
p+=const2;
x+ = dx;
y+= dy;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật toán Bresenham trong trường hợp 2
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dx – Dy ; int const1 = 2 * Dx , const2 = 2 * (Dx-Dy);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) > abs(Dx)) {
while(y != y2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
x += dx;
}
y += dy;
putpixel(x,y,color);
}
}
}
Ví dụ Demo vẽ đường thẳng bằng thuật toán Bresenham qua hai điểm A(5,8) và B(20,13)
Ta có Dy=5, Dx=15; p=2Dy-Dx=-5
const1=2Dy=10, const2=2(Dy-Dx)=-20
Thuật toán Bresenham chỉ làm việc trên số nguyên và các thao tác trên số nguyên chỉ là phép cộng và phép dịch bit (phép nhân 2) điều này là một cải tiến làm tăng tốc độ đáng kể so với thuật toán DDA.
Ý tưởng chính của thuật toán nằm ở chỗ xét dấu pi để quyết định điểm kế tiếp, và sử dụng công thức truy hồi pi+1- pi để tính pi bằng các phép toán đơn giản trên số nguyên.
Tuy nhiên thuật toán Bresenham xây dựng phức tạp hơn thuật toán DDA.
Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi +1 bằng cách so sánh điểm thực Q với điểm MidPoint là trung điểm của S và P. Ta có :
Nếu điểm Q nằm dưới điểm MidPoint, ta chọn S.
- Ngược lại nếu điểm Q nằm trên điểm MidPoint ta chọn P.
Ta có dạng tổng quát của phương trình đường thẳng là :
Ax + By + C = 0 Với A = y2 –y1; B = - (x2 – x1) ; C = x2y1 -x1y2
Đặt F(x,y)=Ax + By + C thì ta có nhận xét F(x,y) <0,nếu (x,y) nằm phía trên đường thẳng
F(x,y) = 0 nếu (x,y) nằm thuộc đường thẳng
F(x,y) > 0 nếu (x,y)nằm phía dưới đường thẳng
Lúc này việc chọn điểm S hay P được đưa về việc xét dấu của pi = 2F(midpoint) = 2F(xi+1;yi+1/2)
Xây dựng pi trong trường hợp 0<=m<=1, và Dx <0
Giống như một số thuật toán khác, ta không tính toán trực tiếp các giá trị pi để chọn điểm tiếp theo mà tính toán dựa trên kết quả của bước trước.
Xét pi+1-pi=2F(xi+1+1,yi+1+1/2)-2F(xi+1,yi+1/2)
Thay F(x,y)=Ax+By+C với A=Dy, B=-Dx vào ta được kết quả pi+1-pi=2Dy-2Dx(yi+1-yi) (1)
Nhận xét:
Khi yi+1=yi ta có (1) pi+1=pi+2Dy
Khi yi+1=yi+1 ta có (1) pi+1=pi+2Dy-2Dx=pi+2(Dy-Dx)
Giá trị p0 ứng với điểm ban đầu được tính:
p0=2F(xđầu+1, y đầu+1/2)=2[A(xđầu+1)+B(yđầu+1/2)+C] =2Dy-Dx
Tóm tắt thuật toán:
p0=2Dy-Dx
yi+1=
pi+1=
yi nếu pi <0
yi+1 nếu pi >=0
pi+2Dy nếu pi <0
pi+2(Dy-Dx) nếu pi >=0
Trường hợp 1: |Dy|<=|Dx|
A
B
A
B
B
A
B
A
Giải thuật bằng thuật toán Midpoint trong trường hợp 1
|Dy|<=|Dx|;
. Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int x = x1, y = y1;
int p = 2 * Dy – Dx;
int const1 = 2 * Dy, const2 = 2 * (Dy-Dx);
putpixel(x, y, color);
dx =(Dx>0)? 1:-1;
dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x!=x2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
y+=dy;
x+=dx;
Putpixel(x,y,color);
Luư đồ thuật toán Midpoint trường hợp 1: |Dy|<=|Dx|
begin
p = 2Dy - Dx;
const1=2Dy; const2=2(Dy-Dx);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
x != x2
p+=const1;
end
NO
YES
p < 0
p+=const2;
y + = dy;
x += dx;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật tóan Midpoint trong trường hợp 1
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dy – Dx ; int const1 = 2 * Dy , const2 = 2 * (Dy-Dx);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) <= abs(Dx)) {
while(x != x2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
y += dy;
}
x += dx;
putpixel(x,y,color);
}
}
}
A
B
A
B
B
A
A
B
Trường hợp 2
|Dy|<=|Dx|
Các dạng đường thẳng thỏa |Dy| > |Dx|
Giải thuật bằng thuật toán MidPoint trong trường hợp 2
|Dy|>|Dx|;
Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int x = x1, y = y1;
int p = 2 * Dx – Dy;
int const1 = 2 * Dx, const2 = 2 * (Dx-Dy);
putpixel(x, y, color);
int dx =(Dx>0)? 1:-1;
int dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y!=y2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
x+=dx;
y+=dy;
Putpixel(x,y,color);
Luư đồ thuật toán Midpoint trong trường hợp 2: |Dy|>|Dx|
begin
p = 2Dx - Dy;
const1=2Dx; const2=2(Dx-Dy);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
y != y2
p+=const1;
end
NO
YES
p < 0
p+=const2;
x+ = dx;
y+= dy;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật toán Midpoint trong trường hợp 2
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dx – Dy ; int const1 = 2 * Dx , const2 = 2 * (Dx-Dy);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) > abs(Dx)) {
while(y != y2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
x += dx;
}
y += dy;
putpixel(x,y,color);
}
}
}
Mở rộng thuật toán Midpoint trong các trường hợp vẽ đường thẳng với m bất kì
***Trường hợp đặc biệt m = : Đoạn thẳng song song trục tung nên rất đơn giản khi vẽ.
***Trường hợp -1<=m<=1 :Sử dụng các công thức của thuật toán vẽ trong trường hợp 0 < = m <=1, Dx >0 và thay đổi một số điểm sau:
Nếu Dx < 0 thì bước nhảy của x sẽ thay bằng -1 tương tự nếu Dy <0, bước nhảy của y cũng sẽ là -1.
Thay Dx bằng abs(Dx), Dy = abs(Dy) trong tất cả các công thức có chứa Dx,Dy
*** Trường hợp m<= -1 hay m>=1
Thay đổi vai trò của x và y cho nhau, thay đổi vai trò của Dx và Dy cho nhau trong tất cả các công thức
Thực hiện nguyên tắt về bước nhảy và thay đổi Dx, Dy như trong trường hợp -1< = m < =1
Dựa vào tính chất đối xứng của đường tròn ta có thể mở rộng các thuật toán Bresenham và Midpoint cho việc vẽ đường tròn
y
THUẬT TOÁN VẼ ĐƯỜNG TRÒN
y
(x,y)
(y,x)
(-y,x)
(x,-y)
(-x,-y)
(-y,-x)
(y,-x)
(-x,y)
x
Trong hệ tọa độ Descartes, phương trình đường tròn bán kính R có dạng:
Với tâm O(0,0) :
x2 + y2 = R2
Với tâm C(xc,yc):
(x - xc)2 + (y - yc)2 = R2
Trong hệ tọa độ cực :
x = xc+ R.cosθ
y = yc + Y.sinθ
với θ thuộc [0, 2π].
- Do tính đối xứng của đường tròn C (xem hình 1.7) nên ta chỉ cần vẽ 1/8 cung tròn,
- sau đó lấy đối xứng qua 2 trục tọa độ và 2 đường phân giác thì ta vẽ được cả đường tròn.
THUẬT TOÁN VẼ ĐƯỜNG TRÒN BẰNG MIDPOINT
Do tính đối xứng của đường tròn nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng là vẽ được cả đường tròn.
Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi-1
bằng cách so sánh điểm thực Q(xi+1,y) với điểm giữa MidPoind là trung điểm của S1 vàS2.
Chọn điểm bắt đầu để vẽ là (0,R). Giả sử (xi, yi) là điểm nguyên đã tìm được ở bước thứ i (xem hình 1.8), thì điểm (xi+1, yi+1) ở bước i+1 là sự lựa chọn giữa S1 và S2.
Xi+1 = x + 1
yi+1= yi – 1 hoặc yi;
THUẬT TOÁN VẼ ĐƯỜNG TRÒN BẰNG MIDPOINT
Đặt F(x,y) = x2 + y2 - R2 , ta có :
. F(x,y) < 0 , nếu điểm (x,y) nằm trong đường tròn.
. F(x,y) = 0 , nếu điểm (x,y) nằm trên đường tròn.
. F(x,y) > 0 , nếu điểm (x,y) nằm ngoài đường tròn.
Xét Pi = F(MidPoint) = F(xi +1, yi - 1/2). Ta có :
- Nếu Pi < 0 : điểm MidPoint nằm trong đường tròn. Khi đó, điểm thực Q gần với điểm
S1 hơn nên ta chọn yi+1 = yi .
- Nếu Pi>= 0 : điểm MidPoint nằm ngòai đường tròn. Khi đó, điểm thực Q gần với điểm
S2 hơn nên ta chọn yi+1 = yi - 1.
Mặt khác :
Pi+1 - Pi = F(xi+1 +1, yi+1 - 1/2) - F(xi + 1, yi - 1/2)
= [(xi+1 +1)2 + (yi+1 - 1/2)2 - R2 ] - [(xi +1)2 + (yi - 1/2)2 - R2 ]
= 2xi + 3 + ((yi+1)2 + (yi)2 ) - (yi+1 - yi)
Vậy :
- Nếu Pi < 0 : chọn yi+1 = yi. Khi đó Pi+1 = Pi+ 2xi +3
- Nếu Pi >= 0 : chọn yi+1 = yi - 1. Khi đó Pi+1 = Pi+ 2xi - 2yi +5.
- Piứng với điểm ban đầu ( x0 , y0 ) = (0,R) là:
P0 = F(x0 + 1, y0 - 1/2) = F(1, R - 1/2) =5/4 -R
XÂY DỰNG THUẬT TOÁN VẼ ĐƯỜNG TRÒN BẰNG MIDPOINT
Q(xi+1,y)
Midpoint
S1
S2
yi
yi-1
yi+1
(xi,yi)
Luư đồ thuật toán Midpoint cho đường tròn
begin
P = 5/4 - R;
x=0 ; y= R;
Putpixel8(x,y,c);
x
P = P + 2*x + 3
end
NO
YES
p < 0
P = P + 2*(x-y)+5
y = y - 1
x++;
putpixel8(x,y,color)
YES
NO
Cài đặt thuật toán Midpoint cho đường tròn
void MidpointCircle(int a,int b,int r,Color c){
int x,y;
x=0;
y=r;
put8pixel(x,y,a,b,c);
int p=1-r;
while(x
if(p<0) {
p+=2*x+3;
}
else {
p+=2*(x-y)+5;
y--;
}
x++;
put8pixel(x,y,a,b,c);
}
}
Ví dụ Demo đường tròn bằng thuật toán Midpoint
Midpointcircle(15,16,13,Color(255,0,0));
Vẽ đường tròn bằng thuật toán Bresenham
Tương tự thuật toán vẽ đường thẳng Bresenham, các vị trí ứng với các tọa độ nguyên nằm trên đường tròn có thể tính được bằng cách xác định một trong hai pixel gần
nhất với đường tròn thực hơn trong mỗi bước
S1
S2
yi
yi-1
yi+1=y
(xi,yi)
d1
d2
XÂY DỰNG THUẬT TOÁN BRESENHAM VẼ ĐƯỜNG TRÒN
Ta có :
d1 = (yi)2 - y2 = (yi)2 - (R2- (xi + 1)2 )
d2 = y2 - (yi - 1)2 = (R2- (xi + 1)2 ) - (yi - 1)2Pi = d1 - d2
* Tính Pi+1 - Pi
=> Pi+1 = Pi + 4xi + 6 + 2((yi+1)2 - (yi)2 ) - 2(yi+1 - yi)
- Nếu Pi < 0 : chọn yi+1 = yi. Khi đó Pi+1 = Pi+ 4xi +6
- Nếu Pi >= 0 : chọn yi+1 = yi - 1. Khi đó Pi+1 = Pi+ 4(xi - yi ) + 10.
- P0ứng với điểm ban đầu ( x0 , y0 ) = (0,R) là: P0= 3 - 2R.
Luư đồ thuật toán Bresenham cho đường tròn
begin
P= 3 - 2R
x=0 ; y= R;
Putpixel8(x,y,c);
x
P = P+ 4x +6
end
NO
YES
p < 0
P += 4(x - y ) + 10
x++;
putpixel8(x,y,color)
YES
NO
Cài đặt thuật toán Bresenham cho đường tròn
void Bres_circle(int a,int b,int r,Color c){
int x,y;
x=0;
y=r;
put8pixel(x,y,a,b,c);
int p=3-2*r;
while(x
{
if(p<0) {
p+=4*x+6;
}
else {
p+=4*(x-y)+10;
y--;
}
x++;
put8pixel(x,y,a,b,c);
}
}
Ví dụ Demo thuật toán Bresenham vẽ đường tròn
Bres_circle(25,26,17,Color(225,0,0));
Ngoài ra ta còn có thể mở rộng thuật toán Bresenham cho việc vẽ đường tròn và các đường conic
VẼ ELIP BẰNG BRESENHAM
Tương tự thuật toán vẽ đường tròn, sử dụng thuật toán Bresenham để vẽ, ta chỉ cần
vẽ 1/4 ellipse, sau đó lấy đối xứng qua các trục tọa độ sẽ vẽ được toàn bộ ellipse.
Xét ellipse có tâm O, các bán kính là a và b, phương trình là x^2/a^2 – y^2/b^2=1
Chọn tọa độ pixel đầu tiên cần hiển thị là (xi ,yi) = (0,b). Cần xác định pixel tiếp theo là
(xi+1 ,yi+1).
Ta có :
xi+1=x+1;
yi+1=yi-1 hay yi
d1 = (yi)^2 – y^2
d2 = y^2 - (yi - 1)^2
XÂY DỰNG THUẬT TOÁN BRESENHAM VẼ ELIP
d1 = (yi)^2 – y^2
d2 = y^2 - (yi - 1)^2
Pi = d1 - d2
Tính Pi+1 - Pi
=> Pi+1 = Pi + 2((yi+1)^2 - (yi)^2 ) - 2(yi+1 - yi)+2b^2/a^2(2xi+3)
- Nếu Pi < 0 : chọn yi+1 = yi. Khi đó Pi+1 = Pi+2b^2/a^2(2xi+3)
- Nếu Pi >= 0 : chọn yi+1 = yi - 1.
Khi đó Pi+1 = Pi+2b^2/a^2(2xi+3)+4(1-yi)
- Pi ứng với điểm ban đầu ( x0 , y0 ) = (0,b) là:
P0=2b^2/a^2-2b+1
YES
Luư đồ thuật toán Bresenham cho đường Elip
begin
int x=0,y=b;
int z1= (b*b)/(a*a), z2= 1/ z1;
int P= 2*z1 - 2*b +1; putpixel4(x,y,color)
z1* (x/y) ≤ 1
P +=2*z1*(2*x+3)
end
NO
p < 0
P +=2*z1*(2*x+3) + 4*(1-y);
y--;
x++;
putpixel4(x,y,color)
YES
NO
int y=0,x=a;
int P= 2*z2 - 2*b +1;
putpixel4(x,y,color)
z2* (y/x) < 1
p < 0
P +=2*z2*(2*x+3)
P +=2*z2*(2*x+3) + 4*(1-y);
x--
YES
NO
NO
YES
y++;
putpixel4(x,y,color)
Cài đặt thuật toán Bresenham cho Elip
int x,y;
void ellipse(int xc, int yc, int a, int b, Color color){
double z1,z2,P;
x=0;y=b;
z1=(double)(b*b)/(a*a);
z2=(double)1/z1;
P=2*z1-(2*b)+1;
while(z1*(double)x/y<=1){
put4pixel(xc+x,yc+y,color);
if (P<0) P+=2*z1*(2*x+3);
else{
P+=2*z1*(2*x+3)+4*(1-y);
y--;
}
x++; }
x=a;y=0;
P=2*z2-2*a+1;
while(z2*(double)y/x<=1){
put4pixel(xc+x,yc+y,color);
if (P<0) P+=2*z2*(2*y+3);
else{
P+=2*z2*(2*y+3)+4*(1-x);
x--;
}
y++; }
}
Ví dụ Demo vẽ đường Elip bằng thuật toán Bresenham
ellipse(23,28,22,10,Color(0,225,0));
Đề tài của nhóm 9 đến đây xin kết thúc. Vì thời gian và kiến thức có hạn nên chắc chắn đề tài của chúng em còn nhiều vấn đề sai sót, rất mong được sự giúp đỡ và việc đóng góp ý kiến của thầy. Điều đó giúp chúng em hoàn thành những đề tài sau này tốt hơn. Chúng em xin cảm ơn thầy. Kính chúc thầy sức khỏe dồi dào.
Cảm ơn
Nguyễn Vĩnh Hảo 0985401816
Nguyễn Thị Hồng Linh 0987741704
Lê Thụy Hoài Phương 0955002770
Phạm Thị Thủy 0929043688
Nguyễn Lê Cẩm Ngọc 0985024152
ĐỒ HỌA MÁY TÍNH
Tìm hiểu và cài đặt các thuật toán vẽ đường cho trường hợp tổng quát
Input:
(x1,y1)(x2,y2)
Output :
{(x1,y1)(x2,y2)….(xn,yn)}
là những điểm sáng nằm trên đường thẳng.
(x1,y1)
(X2,y2)
(x1,y1)
(x2,y2)
1.Tăng chậm
2.Tăng nhanh
3. Giảm chậm ngược
4. Giảm nhanh ngược
- Đối tượng mô tả trong hệ tọa độ thực là đối tượng liên tục, còn đối tượng trong hệ tọa độ thiết bị là đối tượng rời rạc. Nên cần thực hiện việc rời rạc hóa và việc nguyên hóa một cách tối uư nhất.
Từ đó hình thành các thuật toán khác nhau với những uư thế riêng của nó để tối uư về mặt tốc độ và sự chính xác.
Digital Differential Analyzer
Để hiển thị trên lưới nguyên được liền nét các điểm có tọa độ (xi+1; yi+1) sẽ phải chọn 1 trong 8 điểm có tọa độ (xi + 1;yi + 1 )
3
5
8
2
7
6
4
1
Thuật toán DDA là một thuật toán tính toán các điểm vẽ dọc theo đường thẳng dựa vào hệ số góc của phương trình đường thẳng y = mx + b
Trường hợp 1
Đoạn thẳng tăng chậm với điểm đầu A(x1;y1) ở bên trái và điểm cuối B(xk; yk) ở bên phải và trường hợp đối xứng qua ox
A
B
y = mx + b (0 < |m| <=1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x1 < xk ;
xi+1 = xi +1 ;
y = yi + m ; //đã cải tiến y
yi+1 = Round(y);
A
B
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trương hợp 1
begin
x
x=x+1;
y=y+m;
Putpixel(x,Round(y),c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 1
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) < 1)
{
int x = x1;
float y = y1;
putpixel(x, Round(y),c);
while (x < x2)
{
x++;
y = y+m;
putpixel(x, Round(y), c);
}
}
}
Trường hợp 2
Đoạn thẳng tăng nhanh với điểm đầu A(x1;y1) ở bên trái và điểm cuối B(xk; yk) ở bên phải và trường hợp đối xứng qua oy
A
B
y = mx + b (|m| > 1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y1 < yk ;
x = xi +1/m;
xi+1 = Round(x) ;
yi+1 = yi +1;
A
B
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trường hợp 2
begin
y
x=x+1/m;
y=y+1;
Putpixel(Round(x),y,c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 2
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) > 1)
{
float x = x1;
int y = y1;
putpixel(Round(x),y,c);
while (y < y2)
{
x = x+1/m ;
y ++;
putpixel(Round(x), y, c);
}
}
}
Trường hợp 3
Đoạn thẳng giảm chậm với điểm đầu A(x1;y1) ở bên phải trên và điểm cuối B(xk; yk) ở bên trái dưới và đối xứng của nó qua ox
y = mx + b (0 < |m| <=1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x1 > xk ;
xi+1 = xi -1 ;
y = yi - m ;
yi+1 = Round(y);
B
A
B
A
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trường hợp 3
begin
x >x2
end
x=x-1;
y=y-m;
Putpixel(x,Round(y),c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 3
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) < 1)
{
int x = x1;
float y = y1;
putpixel(x, Round(y),c);
while (x > x2)
{
x --;
y = y - m;
putpixel(x, Round(y), c);
}
}
}
Trường hợp 4
Đoạn thẳng giảm nhanh với điểm đầu A(x1;y1) ở bên phải và điểm cuối B(xk; yk) ở bên trái và đối xứng của nó qua oy
A
B
y = mx + b (m > 1 )
m = (yk – y1)/(xk – x1)
Bước 1: Xác định điểm đầu tiên
x1 = x1 ;
y1 =y1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y1 > yk ;
x = xi -1/m;
xi+1 = Round(x) ;
yi+1 = yi -1;
A
B
Lưu đồ thuật toán DDA vẽ đoạn thẳng qua 2 điểm (x1,y1) và (x2,y2)
trong trường hợp 4
begin
y > y2
end
x=x-1/m;
y=y-1;
Putpixel(Round(x),y,c);
m=Dy/Dx;
x=x1;
y=y1;
Putpixel(x,y,c);
NO
yes
Cài đặt thuật toán DDA trong trường hợp 4
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color c)
{
int Dx = x2-x1; Dy= y2-y1;
float m = (float)Dy/Dx;
if (abs(m) > 1)
{
float x = x1;
int y = y1;
putpixel(Round(x),y,c);
while (y > y2)
{
x = x-1/m ;
y --;
putpixel(Round(x), y, c);
}
}
}
Luư đồ thuật toán DDA trong tất cả các trường hợp vẽ đường thẳng
begin
Dx = x2 – x1
Dy = y2 – y1
abs(Dx) > abs(Dy)
xinc = Dx / step
yinc = Dy / step
x = x1; y = y1
putpixel (x, y,c )
end
NO
YES
step = abs(Dx)
step = abs(Dy)
k<= step
YES
NO
YES
x = x + xinc
y = y + yinc
Putpixel(Round(x),Round(y),c)
NO
Cài đặt thuật toán DDA trong trường hợp Tổng quát
#include
#include
#include
#define Round(a) int(a+0.5)
using namespace std;
Void DDA_line1(int x1,int y1,int x1,int y2, Color color){
double x,y; int step;
if(abs(x2-x1)>abs(y2-y1))
step=abs(x2-x1);
else
step=abs(y2-y1);
x=(double)x1;
y=(double)y1;
putpixel(Round(x),Round(y),color);
double m=(double)(x2-x1)/step;
double n=(double)(y2-y1)/step;
for(double i=1;i<=step;i++)
{
x+=m;
y+=n;
putpixel(Round(x),Round(y),color);
}
}
Ví dụ Demo vẽ đường thẳng từ điểm A(2, 10) đến điểm B(21, 16) (0 < m < 1) điểm A(9, 1) đến điểm B(17,12) (m > 1) bằng thuật toán DDA.
A (2, 10) đến B (21, 1) m= 6/19 = 0,316 < 1
i xi yi y
0 2 10 10
3 10 10,316
4 11 10,632
5 11 10,948
6 11 11,264
7 12 11,580
8 12 11,896
9 12 12,212
10 13 12,528
11 13 12,844
12 13 13,160
13 13 13,476
14 14 13,792
15 14 14,108
16 14 14,424
17 15 14,740
18 15 15,056
19 15 15,372
20 16 15,688
21 16 16,004
A ( 9,1 ) đến B (17 , 12 ) m= 11/8 = 1.375> 1
1/m = 0,73
i xi yi x
0 9 1 9
10 2 9,73
10 3 10,46
11 4 11,19
12 5 11,92
13 6 12,65
13 7 13,38
14 8 14,11
15 9 14,84
16 10 15,57
16 11 16,30
17 12 17,03
Tất cả các trường hợp của đoạn thẳng còn lại được vẽ dựa trên thuật toán DDA bằng việc hoán đổi vị trí của điểm đầu và điểm cuối hoặc lấy đối xứng qua các trục tọa độ của 4 trường hợp trên.
Việc sử dụng công thức để tính giá trị y tại mỗi bước đã giúp cho thuật toán DDA nhanh hơn hẳn so với cách tính y từ phương trình y=mx +b do khử được phép nhân trên số thực. Tuy nhiên, việc cộng dồn giá trị thực m vào y có thể sẽ tích lũy sai số làm cho hàm làm tròn có kết quả sai dẫn tới việc xác định vị trí của điểm vẽ ra bị chệch hướng so với đường thẳng thực. Điều này chỉ xảy ra khi vẽ đoạn thẳng khá dài.
Tuy đã khử được phép nhân số thực nhưng thuật toán DDA vẫn còn bị hạn chế về mặt tốc độ do vẫn còn phép toán cộng số thực và làm tròn. Có thể khắc phục thao tác cộng số thực m và làm tròn trong thuật toán bằng cách nhận xét m=Dy/Dx với Dy, Dx là các số nguyên.
- Thuật toán Bresenham đưa ra cách chọn yi+1 là yi hay yi+1 theo một hướng khác sao cho có thể tối ưu hóa về mặt tốc độ so với thuật toán DDA. Vấn đề mấu chốt ở đây là làm thế nào để hạn chế tối đa các phép toán trên số thực trong thuật toán.
- Ý tưởng chính của thuật toán Bresenham là việc so sánh khỏang cách giữa tọa độ y thực tại vị trí xi+1 với các tọa độ y nguyên trên và dưới nó.
*** Phương pháp của thuật toán Bresenham
Gọi (xi+1,y) là điểm thuộc đoạn thẳng thực.
Ta có: y = m( xi+1) + b. (0 < m <1)
Xét các hiệu khoảng cách của tung độ thực y so với các tung độ nguyên yi và yi+1 để chọn một điểm là S(xi +1, yi) hay P( xi + 1,yi + 1) gần với điểm thực nhất.
Đặt d1 = y - yi
d2 = ( yi+ 1) - y
- Nếu d1- d2 < 0: Chọn điểm S, tức là yi+1=yi.
- Nếu d1- d2 ≥ 0: Chọn điểm P, tức là yi+1 =yi + 1.
Xây dựng pi
Xét pi = Δx (d1 - d2) với Δx= x2- x1; Δy= y2 –y1;
Ta có : d1 - d2 = 2 yi+1 - 2yi - 1 = 2m(xi+1) + 2b - 2yi - 1
=> pi = Δx (d1 - d2) = Δx[2m(xi+1) + 2b - 2yi - 1] = Δx[2 Δy/Δx (xi+1) + 2b - 2yi - 1]
= 2Δy(xi+1) - 2Δx.yi + Δx(2b - 1) = 2Δy.xi - 2Δx.yi+ 2Δy + Δx(2b - 1)
Vậy C = 2Δy + Δx(2b - 1) = Const
=> pi= 2Δy.xi - 2Δx.yi+ C
Nhận xét rằng nếu tại bước thứ i ta xác định được dấu của Pi thì xem như ta xác định
được điểm cần chọn ở bước (i+1). Ta có :
pi +1 - pi= (2Δy.xi+1 - 2Δx.yi+1+ C) - (2Δy.xi - 2Δx.yi+ C )
=> Pi +1 = pi + 2Δy - 2Δx ( yi+1 - .yi)
- Nếu pi< 0 : chọn điểm S, tức là yi +1= yi và pi +1 = pi + 2Δy.
- Nếu pi≥ 0 : chọn điểm P, tức là yi +1= yi +1 và pi +1 = pi + 2Δy - 2Δx
- Giá trị p0được tính từ điểm vẽ đầu tiên (x0,y0) theo công thức :
P0= 2Δy.x0 - 2Δx.y0+ C
Do (x0,y0) là điểm nguyên thuộc về đoạn thẳng nên ta có : y0 = m .x0+ b = Δy/Δx.x0 + b
Thế vào phương trình trên ta được :
p0= 2Δy - Δx
Trường hợp 1
|Dy|<=|Dx|
A
B
A
B
B
A
B
A
Các dạng đường thẳng thỏa |yB - yA| <= |xB – xA|
Giải thuật trong trường hợp 1:
|Dy|<=|Dx|;
Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int p = 2 * Dy – Dx;
int const1 = 2 * Dy, const2 = 2 * (Dy-Dx);
int x = x1, y = y1;
putpixel(x, y, color);
int dx =(Dx>0)? 1:-1;
int dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x!=x2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
y+=dy;
x+=dx;
Putpixel(x,y,color);
Luư đồ thuật toán Bresenham trường hợp 1: |Dy|<=|Dx|
begin
p = 2Dy - Dx;
const1=2Dy; const2=2(Dy-Dx);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
x != x2
p+=const1;
end
NO
YES
p < 0
p+=const2;
y + = dy;
x += dx;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật tóan Bresenham trong trường hợp 1
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dy – Dx ; int const1 = 2 * Dy , const2 = 2 * (Dy-Dx);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) <= abs(Dx)) {
while(x != x2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
y += dy;
}
x += dx;
putpixel(x,y,color);
}
}
}
A
B
A
B
B
A
A
B
Trường hợp 2
|Dy|<=|Dx|
Các dạng đường thẳng thỏa |Dy| > |Dx|
Giải thuật trong trường hợp 2
|Dy|>|Dx|;
Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int x = x1, y = y1;
int p = 2 * Dx – Dy;
int const1 = 2 * Dx, const2 = 2 * (Dx-Dy);
putpixel(x, y, color);
int dx =(Dx>0)? 1:-1;
int dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y!=y2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
x+=dx;
y+=dy;
Putpixel(x,y,color);
Luư đồ thuật toán Bresenham trong trường hợp 2: |Dy|>|Dx|
begin
p = 2Dx - Dy;
const1=2Dx; const2=2(Dx-Dy);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
y != y2
p+=const1;
end
NO
YES
p < 0
p+=const2;
x+ = dx;
y+= dy;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật toán Bresenham trong trường hợp 2
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dx – Dy ; int const1 = 2 * Dx , const2 = 2 * (Dx-Dy);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) > abs(Dx)) {
while(y != y2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
x += dx;
}
y += dy;
putpixel(x,y,color);
}
}
}
Ví dụ Demo vẽ đường thẳng bằng thuật toán Bresenham qua hai điểm A(5,8) và B(20,13)
Ta có Dy=5, Dx=15; p=2Dy-Dx=-5
const1=2Dy=10, const2=2(Dy-Dx)=-20
Thuật toán Bresenham chỉ làm việc trên số nguyên và các thao tác trên số nguyên chỉ là phép cộng và phép dịch bit (phép nhân 2) điều này là một cải tiến làm tăng tốc độ đáng kể so với thuật toán DDA.
Ý tưởng chính của thuật toán nằm ở chỗ xét dấu pi để quyết định điểm kế tiếp, và sử dụng công thức truy hồi pi+1- pi để tính pi bằng các phép toán đơn giản trên số nguyên.
Tuy nhiên thuật toán Bresenham xây dựng phức tạp hơn thuật toán DDA.
Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi +1 bằng cách so sánh điểm thực Q với điểm MidPoint là trung điểm của S và P. Ta có :
Nếu điểm Q nằm dưới điểm MidPoint, ta chọn S.
- Ngược lại nếu điểm Q nằm trên điểm MidPoint ta chọn P.
Ta có dạng tổng quát của phương trình đường thẳng là :
Ax + By + C = 0 Với A = y2 –y1; B = - (x2 – x1) ; C = x2y1 -x1y2
Đặt F(x,y)=Ax + By + C thì ta có nhận xét F(x,y) <0,nếu (x,y) nằm phía trên đường thẳng
F(x,y) = 0 nếu (x,y) nằm thuộc đường thẳng
F(x,y) > 0 nếu (x,y)nằm phía dưới đường thẳng
Lúc này việc chọn điểm S hay P được đưa về việc xét dấu của pi = 2F(midpoint) = 2F(xi+1;yi+1/2)
Xây dựng pi trong trường hợp 0<=m<=1, và Dx <0
Giống như một số thuật toán khác, ta không tính toán trực tiếp các giá trị pi để chọn điểm tiếp theo mà tính toán dựa trên kết quả của bước trước.
Xét pi+1-pi=2F(xi+1+1,yi+1+1/2)-2F(xi+1,yi+1/2)
Thay F(x,y)=Ax+By+C với A=Dy, B=-Dx vào ta được kết quả pi+1-pi=2Dy-2Dx(yi+1-yi) (1)
Nhận xét:
Khi yi+1=yi ta có (1) pi+1=pi+2Dy
Khi yi+1=yi+1 ta có (1) pi+1=pi+2Dy-2Dx=pi+2(Dy-Dx)
Giá trị p0 ứng với điểm ban đầu được tính:
p0=2F(xđầu+1, y đầu+1/2)=2[A(xđầu+1)+B(yđầu+1/2)+C] =2Dy-Dx
Tóm tắt thuật toán:
p0=2Dy-Dx
yi+1=
pi+1=
yi nếu pi <0
yi+1 nếu pi >=0
pi+2Dy nếu pi <0
pi+2(Dy-Dx) nếu pi >=0
Trường hợp 1: |Dy|<=|Dx|
A
B
A
B
B
A
B
A
Giải thuật bằng thuật toán Midpoint trong trường hợp 1
|Dy|<=|Dx|;
. Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int x = x1, y = y1;
int p = 2 * Dy – Dx;
int const1 = 2 * Dy, const2 = 2 * (Dy-Dx);
putpixel(x, y, color);
dx =(Dx>0)? 1:-1;
dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
x!=x2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
y+=dy;
x+=dx;
Putpixel(x,y,color);
Luư đồ thuật toán Midpoint trường hợp 1: |Dy|<=|Dx|
begin
p = 2Dy - Dx;
const1=2Dy; const2=2(Dy-Dx);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
x != x2
p+=const1;
end
NO
YES
p < 0
p+=const2;
y + = dy;
x += dx;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật tóan Midpoint trong trường hợp 1
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dy – Dx ; int const1 = 2 * Dy , const2 = 2 * (Dy-Dx);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) <= abs(Dx)) {
while(x != x2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
y += dy;
}
x += dx;
putpixel(x,y,color);
}
}
}
A
B
A
B
B
A
A
B
Trường hợp 2
|Dy|<=|Dx|
Các dạng đường thẳng thỏa |Dy| > |Dx|
Giải thuật bằng thuật toán MidPoint trong trường hợp 2
|Dy|>|Dx|;
Bước 1: Xác định điểm đầu
int Dx = x2 – x1, Dy = y2 – y1;
int x = x1, y = y1;
int p = 2 * Dx – Dy;
int const1 = 2 * Dx, const2 = 2 * (Dx-Dy);
putpixel(x, y, color);
int dx =(Dx>0)? 1:-1;
int dy=(Dy>0)? 1:-1;
Bước 2: Xác định những điểm tiếp theo
Lặp
y!=y2 ;
Nếu p<0:
p+=const1;
Nếu p>=0:
p+=const2;
x+=dx;
y+=dy;
Putpixel(x,y,color);
Luư đồ thuật toán Midpoint trong trường hợp 2: |Dy|>|Dx|
begin
p = 2Dx - Dy;
const1=2Dx; const2=2(Dx-Dy);
x = x1; y = y1;
putpixel(x,y,color);
dx = (Dx >0)? 1:-1;
dy = (Dy > 0)?1:-1;
y != y2
p+=const1;
end
NO
YES
p < 0
p+=const2;
x+ = dx;
y+= dy;
Putpixel(x, y,color);
YES
NO
Cài đặt thuật toán Midpoint trong trường hợp 2
#include
#include
#include
using namespace std;
Void Bresenham_line (int x1,int y1, int x2, int y2, Color color)
{
int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1;
int p = 2 * Dx – Dy ; int const1 = 2 * Dx , const2 = 2 * (Dx-Dy);
putpixel(x, y, color) ;
int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1;
if(abs(Dy) > abs(Dx)) {
while(y != y2)
{
if ( p < 0) p+=const1;
else {
p+=const2;
x += dx;
}
y += dy;
putpixel(x,y,color);
}
}
}
Mở rộng thuật toán Midpoint trong các trường hợp vẽ đường thẳng với m bất kì
***Trường hợp đặc biệt m = : Đoạn thẳng song song trục tung nên rất đơn giản khi vẽ.
***Trường hợp -1<=m<=1 :Sử dụng các công thức của thuật toán vẽ trong trường hợp 0 < = m <=1, Dx >0 và thay đổi một số điểm sau:
Nếu Dx < 0 thì bước nhảy của x sẽ thay bằng -1 tương tự nếu Dy <0, bước nhảy của y cũng sẽ là -1.
Thay Dx bằng abs(Dx), Dy = abs(Dy) trong tất cả các công thức có chứa Dx,Dy
*** Trường hợp m<= -1 hay m>=1
Thay đổi vai trò của x và y cho nhau, thay đổi vai trò của Dx và Dy cho nhau trong tất cả các công thức
Thực hiện nguyên tắt về bước nhảy và thay đổi Dx, Dy như trong trường hợp -1< = m < =1
Dựa vào tính chất đối xứng của đường tròn ta có thể mở rộng các thuật toán Bresenham và Midpoint cho việc vẽ đường tròn
y
THUẬT TOÁN VẼ ĐƯỜNG TRÒN
y
(x,y)
(y,x)
(-y,x)
(x,-y)
(-x,-y)
(-y,-x)
(y,-x)
(-x,y)
x
Trong hệ tọa độ Descartes, phương trình đường tròn bán kính R có dạng:
Với tâm O(0,0) :
x2 + y2 = R2
Với tâm C(xc,yc):
(x - xc)2 + (y - yc)2 = R2
Trong hệ tọa độ cực :
x = xc+ R.cosθ
y = yc + Y.sinθ
với θ thuộc [0, 2π].
- Do tính đối xứng của đường tròn C (xem hình 1.7) nên ta chỉ cần vẽ 1/8 cung tròn,
- sau đó lấy đối xứng qua 2 trục tọa độ và 2 đường phân giác thì ta vẽ được cả đường tròn.
THUẬT TOÁN VẼ ĐƯỜNG TRÒN BẰNG MIDPOINT
Do tính đối xứng của đường tròn nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng là vẽ được cả đường tròn.
Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi-1
bằng cách so sánh điểm thực Q(xi+1,y) với điểm giữa MidPoind là trung điểm của S1 vàS2.
Chọn điểm bắt đầu để vẽ là (0,R). Giả sử (xi, yi) là điểm nguyên đã tìm được ở bước thứ i (xem hình 1.8), thì điểm (xi+1, yi+1) ở bước i+1 là sự lựa chọn giữa S1 và S2.
Xi+1 = x + 1
yi+1= yi – 1 hoặc yi;
THUẬT TOÁN VẼ ĐƯỜNG TRÒN BẰNG MIDPOINT
Đặt F(x,y) = x2 + y2 - R2 , ta có :
. F(x,y) < 0 , nếu điểm (x,y) nằm trong đường tròn.
. F(x,y) = 0 , nếu điểm (x,y) nằm trên đường tròn.
. F(x,y) > 0 , nếu điểm (x,y) nằm ngoài đường tròn.
Xét Pi = F(MidPoint) = F(xi +1, yi - 1/2). Ta có :
- Nếu Pi < 0 : điểm MidPoint nằm trong đường tròn. Khi đó, điểm thực Q gần với điểm
S1 hơn nên ta chọn yi+1 = yi .
- Nếu Pi>= 0 : điểm MidPoint nằm ngòai đường tròn. Khi đó, điểm thực Q gần với điểm
S2 hơn nên ta chọn yi+1 = yi - 1.
Mặt khác :
Pi+1 - Pi = F(xi+1 +1, yi+1 - 1/2) - F(xi + 1, yi - 1/2)
= [(xi+1 +1)2 + (yi+1 - 1/2)2 - R2 ] - [(xi +1)2 + (yi - 1/2)2 - R2 ]
= 2xi + 3 + ((yi+1)2 + (yi)2 ) - (yi+1 - yi)
Vậy :
- Nếu Pi < 0 : chọn yi+1 = yi. Khi đó Pi+1 = Pi+ 2xi +3
- Nếu Pi >= 0 : chọn yi+1 = yi - 1. Khi đó Pi+1 = Pi+ 2xi - 2yi +5.
- Piứng với điểm ban đầu ( x0 , y0 ) = (0,R) là:
P0 = F(x0 + 1, y0 - 1/2) = F(1, R - 1/2) =5/4 -R
XÂY DỰNG THUẬT TOÁN VẼ ĐƯỜNG TRÒN BẰNG MIDPOINT
Q(xi+1,y)
Midpoint
S1
S2
yi
yi-1
yi+1
(xi,yi)
Luư đồ thuật toán Midpoint cho đường tròn
begin
P = 5/4 - R;
x=0 ; y= R;
Putpixel8(x,y,c);
x
end
NO
YES
p < 0
P = P + 2*(x-y)+5
y = y - 1
x++;
putpixel8(x,y,color)
YES
NO
Cài đặt thuật toán Midpoint cho đường tròn
void MidpointCircle(int a,int b,int r,Color c){
int x,y;
x=0;
y=r;
put8pixel(x,y,a,b,c);
int p=1-r;
while(x
p+=2*x+3;
}
else {
p+=2*(x-y)+5;
y--;
}
x++;
put8pixel(x,y,a,b,c);
}
}
Ví dụ Demo đường tròn bằng thuật toán Midpoint
Midpointcircle(15,16,13,Color(255,0,0));
Vẽ đường tròn bằng thuật toán Bresenham
Tương tự thuật toán vẽ đường thẳng Bresenham, các vị trí ứng với các tọa độ nguyên nằm trên đường tròn có thể tính được bằng cách xác định một trong hai pixel gần
nhất với đường tròn thực hơn trong mỗi bước
S1
S2
yi
yi-1
yi+1=y
(xi,yi)
d1
d2
XÂY DỰNG THUẬT TOÁN BRESENHAM VẼ ĐƯỜNG TRÒN
Ta có :
d1 = (yi)2 - y2 = (yi)2 - (R2- (xi + 1)2 )
d2 = y2 - (yi - 1)2 = (R2- (xi + 1)2 ) - (yi - 1)2Pi = d1 - d2
* Tính Pi+1 - Pi
=> Pi+1 = Pi + 4xi + 6 + 2((yi+1)2 - (yi)2 ) - 2(yi+1 - yi)
- Nếu Pi < 0 : chọn yi+1 = yi. Khi đó Pi+1 = Pi+ 4xi +6
- Nếu Pi >= 0 : chọn yi+1 = yi - 1. Khi đó Pi+1 = Pi+ 4(xi - yi ) + 10.
- P0ứng với điểm ban đầu ( x0 , y0 ) = (0,R) là: P0= 3 - 2R.
Luư đồ thuật toán Bresenham cho đường tròn
begin
P= 3 - 2R
x=0 ; y= R;
Putpixel8(x,y,c);
x
end
NO
YES
p < 0
P += 4(x - y ) + 10
x++;
putpixel8(x,y,color)
YES
NO
Cài đặt thuật toán Bresenham cho đường tròn
void Bres_circle(int a,int b,int r,Color c){
int x,y;
x=0;
y=r;
put8pixel(x,y,a,b,c);
int p=3-2*r;
while(x
if(p<0) {
p+=4*x+6;
}
else {
p+=4*(x-y)+10;
y--;
}
x++;
put8pixel(x,y,a,b,c);
}
}
Ví dụ Demo thuật toán Bresenham vẽ đường tròn
Bres_circle(25,26,17,Color(225,0,0));
Ngoài ra ta còn có thể mở rộng thuật toán Bresenham cho việc vẽ đường tròn và các đường conic
VẼ ELIP BẰNG BRESENHAM
Tương tự thuật toán vẽ đường tròn, sử dụng thuật toán Bresenham để vẽ, ta chỉ cần
vẽ 1/4 ellipse, sau đó lấy đối xứng qua các trục tọa độ sẽ vẽ được toàn bộ ellipse.
Xét ellipse có tâm O, các bán kính là a và b, phương trình là x^2/a^2 – y^2/b^2=1
Chọn tọa độ pixel đầu tiên cần hiển thị là (xi ,yi) = (0,b). Cần xác định pixel tiếp theo là
(xi+1 ,yi+1).
Ta có :
xi+1=x+1;
yi+1=yi-1 hay yi
d1 = (yi)^2 – y^2
d2 = y^2 - (yi - 1)^2
XÂY DỰNG THUẬT TOÁN BRESENHAM VẼ ELIP
d1 = (yi)^2 – y^2
d2 = y^2 - (yi - 1)^2
Pi = d1 - d2
Tính Pi+1 - Pi
=> Pi+1 = Pi + 2((yi+1)^2 - (yi)^2 ) - 2(yi+1 - yi)+2b^2/a^2(2xi+3)
- Nếu Pi < 0 : chọn yi+1 = yi. Khi đó Pi+1 = Pi+2b^2/a^2(2xi+3)
- Nếu Pi >= 0 : chọn yi+1 = yi - 1.
Khi đó Pi+1 = Pi+2b^2/a^2(2xi+3)+4(1-yi)
- Pi ứng với điểm ban đầu ( x0 , y0 ) = (0,b) là:
P0=2b^2/a^2-2b+1
YES
Luư đồ thuật toán Bresenham cho đường Elip
begin
int x=0,y=b;
int z1= (b*b)/(a*a), z2= 1/ z1;
int P= 2*z1 - 2*b +1; putpixel4(x,y,color)
z1* (x/y) ≤ 1
P +=2*z1*(2*x+3)
end
NO
p < 0
P +=2*z1*(2*x+3) + 4*(1-y);
y--;
x++;
putpixel4(x,y,color)
YES
NO
int y=0,x=a;
int P= 2*z2 - 2*b +1;
putpixel4(x,y,color)
z2* (y/x) < 1
p < 0
P +=2*z2*(2*x+3)
P +=2*z2*(2*x+3) + 4*(1-y);
x--
YES
NO
NO
YES
y++;
putpixel4(x,y,color)
Cài đặt thuật toán Bresenham cho Elip
int x,y;
void ellipse(int xc, int yc, int a, int b, Color color){
double z1,z2,P;
x=0;y=b;
z1=(double)(b*b)/(a*a);
z2=(double)1/z1;
P=2*z1-(2*b)+1;
while(z1*(double)x/y<=1){
put4pixel(xc+x,yc+y,color);
if (P<0) P+=2*z1*(2*x+3);
else{
P+=2*z1*(2*x+3)+4*(1-y);
y--;
}
x++; }
x=a;y=0;
P=2*z2-2*a+1;
while(z2*(double)y/x<=1){
put4pixel(xc+x,yc+y,color);
if (P<0) P+=2*z2*(2*y+3);
else{
P+=2*z2*(2*y+3)+4*(1-x);
x--;
}
y++; }
}
Ví dụ Demo vẽ đường Elip bằng thuật toán Bresenham
ellipse(23,28,22,10,Color(0,225,0));
Đề tài của nhóm 9 đến đây xin kết thúc. Vì thời gian và kiến thức có hạn nên chắc chắn đề tài của chúng em còn nhiều vấn đề sai sót, rất mong được sự giúp đỡ và việc đóng góp ý kiến của thầy. Điều đó giúp chúng em hoàn thành những đề tài sau này tốt hơn. Chúng em xin cảm ơn thầy. Kính chúc thầy sức khỏe dồi dào.
Cảm ơn
![ No_avatar](http://d2.violet.vn/uploads/thumbnails/avatar/no_avatar.jpg)
cái này rất hay, có thể còn tài liệu nào tiếp tài liệu tren ko ạ
## Các ý kiến mới nhất

Server: Apache/2.2.3 (CentOS)

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Vary: Accept-Encoding


markdown:
posted by Cheryl at
Saturday, April 02, 2011
It's a great feeling to receive gifts. :)
By Harlene303, at 4:50 AM
Post a Comment
<< Home
Random thoughts from a 40-something single Mom to a 8 year old Basenji named Snoopy.....I love my dog more than I like some people, that's just the way it is.
View my complete profile
## 1 Comments:
It's a great feeling to receive gifts. :)
By
Harlene303, at 4:50 AM
Post a Comment
<< Home

Content-Type: text/html; charset=UTF-8

Cache-Control: private, max-age=0

Server: GSE


markdown:
Chúng ta đã từng nghe rất nhiều những câu chuyện ngoại giao lý thú. Nói đến ngoại giao của thế giới, chúng ta liến nghĩ ngay đến Tiến sỹ Kissinger, Thủ tướng TQ Chu Ân Lai, Ngoại trưởng Liên Xô Môlôtôp thời Xtalin và Gromưcô thời Bregiơnep… Nhiều nhà lãnh đạo thế giới cũng chứng minh được tài ngoại giao khéo léo của mình: Hồ Chí Minh, Xtalin, Hitler, Nichxon, Bush… Không hiếm những câu chuyện ngoại giao độc đáo, thông minh, trí tuệ hơn người gắn liền với tên tuổi của họ. Một thời đại ngoại giao ngay trong những cuộc chiến tranh tàn khốc, những mối quan hệ lắt léo gắn với ý thức hệ. Trong không gian chính trị thế giới đó, ngoại giao vẫn chứng tỏ được vị thế riêng có của nó. Hiển nhiên, ngoại giao có vai trò to lớn và kết quả mà nó đưa lại không nhỏ cho mỗi quốc gia.
Đặc điểm nổi bật của ngoại giao thời đó có lẽ là tính trí tuệ được diễn đạt hết sức tinh tế. Các vấn đề ngoại giao được nhìn, phân tích với góc độ rất trí tuệ. Đối thoại cực hay, thú vị. Ngôn ngôn ngữ rất đa dạng, phong phú, trau chuốt, đầy ngụ ý, biểu cảm. Nghiên cứu lịch sử ngoại giao thế giới thật thú vị.
Ngoại giao VN lại càng gần gũi với chúng ta. Giữa muôn vàn hiểm nguy cho nước cộng hòa non trẻ vừa ra đời, Hồ Chí Minh vẫn đi Pháp bốn tháng nhằm tìm kiếm cơ hội hòa bình. Hiệp định sơ bộ 6.3, Tạm ước 14.9 là những sáng tạo tài tình của nhà ngoại giao Hồ Chí Minh. Ông đã tìm ra được chữ “tự do”: nước VN tự do nằm trong khối liên hiệp Pháp. Thế là người Pháp đồng ý ký!
Thế nhưng, ngày 19.12.1946, cuộc chiến tranh Đông Dương lần thứ nhất bùng nổ. Tháng 5.1947, Hồ Chí Minh gặp Pôn Muýt, cố vấn chính trị của Lơcle trong một ngôi nhà duy nhất còn sót lại giữa Thị xã Thái Nguyên.
Pôn Muýt:
- Để thực hiện cuộc ngừng bắn, Cao ủy Pháp ở Đông Dương xin nêu với Chủ tịch bốn điều kiện: Thứ nhất, quân đội VN phải nộp vũ khí cho Pháp. Thứ hai, quân đội Pháp được quyền tự do đi lại trên đất nước Việt Nam. Thứ ba, Chính phủ VN phải trả lại cho Pháp tất cả những người bị bắt. Thứ tư, Chính phủ VN phải trao trả cho Pháp tất cả những người nước ngoài đã chạy sang phía VN.
Hồ Chí Minh:
- Những điều kiện ông Bôlae đưa ra là đòi chúng tôi phải đầu hàng! Ông Pôn Muýt, bản thân ông có nghĩ rằng chúng tôi có thể đầu hàng không? Phải là một con người hèn mạt mới chấp nhận những điều kiện như vậy.
- Thưa Chủ tịch, như vậy là chiến tranh vẫn tiếp diễn?
- Chúng tôi muốn hòa bình, nhưng không phải là hòa bình với bất cứ giá nào! Mà phải là hòa bình trong độc lập, tự do.
- Thưa Chủ tịch, chúc Người lòng dũng cảm.
- Tất nhiên, bao giờ cũng như vậy.
Hòa bình trong độc lập, tự do – tôi nghĩ, đó là một tư tưởng lớn của Hồ Chí Minh. Hồ Chí Minh đã tận dụng bất cứ cơ hội nào, dù là nhỏ nhất, nhằm tránh chiến tranh, vì ai cũng biết, chiến tranh tàn khốc như thế nào. Nhưng, Hồ Chí Minh không bao giờ hèn mạt chấp nhận những yêu sách vô lý của đối phương.
Đến đây, chúng ta điểm qua ngoại giao VN trong thời đại mới. Gần đây, ngoại giao VN nổi lên một đặc điểm lớn, đó là nền ngoại giao
*“* *giao thiệp* *” *- với TQ.
- Việc TQ bắt giữ tàu cá số hiệu QNg 66478TS cùng 9 ngư dân Việt Nam tại vùng biển thuộc quần đảo Hoàng Sa: “
*Từ đó đến nay, đại diện Bộ Ngoại giao Việt Nam đã nhiều lần * *giao thiệp * *với phía TQ về vấn đề này ở nhiều cấp khác nhau tại Hà Nội và Bắc Kinh”.*
- Việc TQ tiến hành khảo sát địa chấn tại khu vực đảo Tri Tôn, quần đảo Hoàng Sa, san lấp, mở rộng đảo Tri Tôn:
*“Bộ Ngoại giao Việt Nam đã nhiều lần * *giao thiệp* * với phía Trung Quốc ở các cấp khác nhau và bày tỏ ý kiến chính thức của Việt Nam về vấn đề này. Tuy nhiên, đến nay, phía Trung Quốc vẫn tiếp tục triển khai các hoạt động nói trên”*
- Việc Trung Quốc ban hành lệnh cấm đánh bắt cá tại một số vùng biển, trong đó có những khu vực thuộc chủ quyền của Việt Nam trên Biển Đông:
*“Phía Việt Nam tiến hành * *giao thiệp * *ngoại giao phản đối việc làm nói trên của phía Trung Quốc”.*
Thật là một nền ngoại giao kỳ lạ, chưa từng có trên thế giới. Và ông cha ta lại càng không bao giờ làm như vậy. Các ông Vua ngày xưa lo nhất là nhục quốc thể. Trả lời chậm: nhục quốc thể. Không lý giải nổi một câu đố của sứ thần họ: nhục quốc thể. Đối đáp kém với họ: nhục quốc thể. Rụt rè không thể gọi là ngoại giao được. Lịch sử dân tộc ta không hiếm những sứ thần sang TQ, đối đáp sắc bén, khí phách hiên ngang, đầy tự hào dân tộc đã làm các hoàng đế TQ dù tức giận nhưng vẫn phải vì nể. Lịch sử cũng cho thấy, dù có tự nguyện làm nô lệ thì có bao giờ người chủ coi trọng nô lệ đâu!
Cùng thời điểm, cùng sự kiện tương tự, nước Nhật đã hành động như thế nào trước những yêu sách ngang ngược của TQ, chúng ta đều đã rõ. Hai quốc gia, hai lãnh đạo, hai ứng xử, hai thái độ và dĩ nhiên, hai kết quả trái ngược nhau.
Để kết thúc, ta hãy đọc lại câu đối của sứ thần Mạc Đĩnh Chi với vua Nguyên.
- Nhật: Hỏa, vân: Yên, bạch đản thiêu tàn ngọc thỏ
*(Mặt trời là lửa, mây là khói; ban ngày đốt cháy vầng trăng)*.
Ấy là vua Nguyên kiêu căng, tự coi mình là mặt trời và coi Đại Việt như mặt trăng, ban ngày phải bị mặt trời thôn tính.
Nguyệt: Cung, tinh: đạn, hoàng hôn xạ lạc kim ô
*(Trăng là cung, sao là tên; chiều tối bắn rơi mặt trời)*.
Vế đối đầy khí phách của sứ thần Đại Việt làm vua Nguyên thán phục. Thế thì, hỡi những nhà ngoại giao
*“giao thiệp”, *các vị có còn nhớ đến tiền nhân? *Nguồn: Blog Lê Mai*
--------------
**Nguồn: trankinhnghi.blogspot.com**


markdown:
Trang Chủ
Tin nhanh
Thảo luận
Phóng sự bút ký
Kinh nghiệm săn thủy quái
Kỷ lục câu
Video
Kỹ thuật câu
Câu lạc bộ câu cá Phao Màu Hồng
Lời nhắn từ diễn đàn
Lời nhắn từ diễn đàn
Invalid Chủ đề specified. If you followed a valid link, please notify the
administrator
Chuyển đến
Bảng điều chỉnh cá nhân
Tin nhắn riêng
Subscriptions
Ai đang online
Tìm trong diễn đàn
Trang Ðầu
DIỄN ĐÀN CLB CÂU CÁ PHAO MẦU HỒNG
LỜI CHÀO MỪNG
TIN NÓNG TRONG NGÀY
NỘI QUY DIỄN ĐÀN
THÔNG BÁO TỪ CLB
THÔNG BÁO CỦA CÁC ĐIỂM CÂU
TIN NHANH
THẢO LUẬN CHUNG
KỸ THUẬT, ĐỒ CÂU CÁ
LƯỠI CÂU
CẦN CÂU
DÂY CƯỚC, DÂY DÙ
Máy câu
Phao câu
Thính câu
Phương pháp câu
HỎI/ĐÁP - HƯỚNG DẪN - GÓP Ý
GIAO LƯU - CÂU CÁ BỐN PHƯƠNG
VIDEO CÂU CÁ
NHỮNG ĐIỂM CÂU HẤP DẪN
PHÓNG SỰ, BÚT KÝ
KỶ LỤC CÂU
NHẬT KÝ CÂU CÁ
MÔI TRƯỜNG SINH THÁI
HOẠT ĐỘNG XÃ HỘI
VĂN HÓA - THỂ THAO
Tin tức
Văn chương - Thơ ca
Thể thao
Âm nhạc, điện ảnh
Cần thủ cười
ĐIỂM HẸN GIAO LƯU, DÃ NGOẠI
THỜI TIẾT
DANH SÁCH THÀNH VIÊN CLB
NHỮNG ĐIỀU CẤM KỴ VÀ KHÔNG NÊN
KINH NGHIỆM SĂN THỦY QUÁI
QUẢNG CÁO
Cần mua
Cần bán
BẢN TIN NỘI BỘ CÂU LẠC BỘ
Ghi nhớ?
Dự Báo Thời Tiết Bắc Giang
TRUNG TÂM DỰ BÁO KHÍ TƯỢNG THỦY VĂN TRUNG ƯƠNG
Thời tiết Bắc Giang - Tìm với Google
ac quy kho
|
ac quy oto
|
ac quy cene
|
ac quy kho tot nhat
cho thue may phat dien
|
may phat dien cu
|
Thông tin thời tiết
Hà Nội
TP Hồ Chí Minh
ĐỒ GỖ QUỐC ĐẠT
CLB CÂU CÁ THÀNH NAM
CLB CÂU CÁ DÃ NGOẠI HÀ NỘI
CÂU CÁ QUẢNG BÌNH
DIỄN ĐÀN BỘ LẠC CÂU
CLB CÂU CÁ HÀ NỘI
CLB CÂU CÁ ĐÔNG ĐÔ
HỘI QUÁN BẠN CÂU
CLB CÂU CÁ SƠN TÂY
CLB CÂU CÁ HÀ THÀNH
CLB CÂU CÁ PHỐ HIẾN
CLB CÂU CÁ 2 DUCK FISHING
CLB CÂU CÁ XỨ NGHỆ
CLB CÂU CÁ GIÓ NGÀN
CLB CÂU CÁ NGHỆ AN
CLB CÂU CÁ SÔNG HỒNG
cho thue may phat dien
|
may phat dien cu
|
thanh ly may phat dien
|
sua chua may phat dien
|
máy phát điện công nghiệp
|
máy phát điện chạy dầu
|
thuoc dong y
|
Liên hệ
-
Lưu Trữ
-
Lên trên
|
Danh sách Thành Viên
Bản quyền thuộc CÂU LẠC BỘ CÂU CÁ PHAO MÀU HỒNG
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

Server: Apache

Cache-Control: private

Pragma: private

Set-Cookie: bblastactivity=0; expires=Sat, 19-Sep-2015 17:49:25 GMT; path=/


markdown:
chém gió bang
chém gió bang
chém gió bang
::
teen new
::
Đời Sống - Tổng Hợp
Share
|
Ngãi là gì
Tác giả
Thông điệp
Anhbakhia
Smod
Tổng số bài gửi
:
5
Join date
:
26/04/2011
Age
:
25
Đến từ
:
Việt Nam
Tiêu đề: Ngãi là gì
Wed Apr 27, 2011 3:59 pm
Hiện nay có rất nhiều người sử dụng bùa ngãi để lợi dụng, chiếm đoạt tình cảm và tài sản của người khác. Sau đây là 2 cách tôi trình bày để pác nào cảm thấy mình như trúng bùa ngãi thì áp dụng.
Cách 1: Lấy vài cái hoa sen ( được hoa tươi thì càng tốt) và 1 nhúm cam thảo bỏ vào siêu nấu với nước, để sôi một lúc rồi tắc lửa. Dùng uống thay nước cả ngày, cũng hơi khó uống và sẽ gây ra buồn ngủ dữ lắm. Uống liên tục 1 tuần thì bùa ngải trong người sẽ được trục ra hết.
Cách 2: Lấy nước dừa tươi (1 trái). Bỏ thêm vào 7 hay 9 lá trầu tươi. Rồi nấu sôi lên, để ngụi. Rót ra đầy 1 chén rồi uống. Rất khó uống nhưng hiệu quả lắm đó. Uống vào độ 10-15 phút thì sẽ có 2 phản ứng xảy ra. Hoặc nôn mửa, nôn đến mật xanh luôn đó (nhưng nôn xong là ko sao nửa) hoặc bị tiêu chảy, đi sạch ruột luôn. 1 tuần chỉ uống 2 lần thôi. UỐng 3 lần là hết bệnh.vì đi tiêu nhiều quá mất nước nên dead ,người mất thì bệnh củng mất luôn !
nhocmonkey256
Smod
Tổng số bài gửi
:
18
Join date
:
23/04/2011
Age
:
23
Đến từ
:
nghiệt long động
Tiêu đề: Re: Ngãi là gì
Wed Apr 27, 2011 9:57 pm
chu? topic lam thu? truoc cho moj nguoj` xem dj
p3_tho_337
Smod
Tổng số bài gửi
:
3
Join date
:
23/04/2011
Tiêu đề: Re: Ngãi là gì
Mon May 02, 2011 12:08 am
nhảm wua a ơi bùa ngải gì thơi nay ai cần 3 cái dóa
)
e chỉ cách cho ai cần thì cứ nói nha
)
Ngãi là gì
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
chém gió bang
::
teen new
::
Đời Sống - Tổng Hợp
chém gió bang
::
teen new
::
Đời Sống - Tổng Hợp
Free forums
|
©
phpBB
|
Free forum support
|
Liên hệ
|
Report an abuse
|
Create your free blog


markdown:
# CHU BIN - Đừng hứa với anh !!!
Đăng ngày 22-02-2008
Nhảy cực hay !!!
Nhảy cực hay !!!
Like để cập nhật clip nóng hổi !
### Bình luận (10)
-
24 clip
#### Nhạc chế Việt Nam cực hot
-
2 clip
#### Huyền Trân - Cô bé mồ côi khiến triệu người xúc động
-
5 clip
#### Những bản nhạc remix điện tử cực chất
-
5 clip
#### Những ca khúc cực hot của Walk off the Earth band
-
8 clip
#### Xao lòng với những bài hát đám cưới cực hay
-
10 clip
#### Nhật Anh Acoustique - ''Thánh chế'' số 1 Việt Nam
-
2 clip
#### MV chế siêu hài
-
16 clip
#### Những bản cover "Bốn chữ lắm" gây sốt cộng đồng mạng
-
7 clip
#### Hoàng Thùy Linh ''bốc lửa'' với bài hát sôi động
-
17 clip
#### Vòng Đối đầu - Giọng hát Việt nhí 2014
-
7 clip
#### Say đắm trước những giọng hát tuyệt vời
-
5 clip
#### "Chị Bảy" làm rung động trái tim khán giả trong chuyến lưu diễn ở Úc

Server: Apache/2.2.22 (Unix)

Content-Type: text/html


markdown:
# Sheet Nhạc Trường Sơn Đông Trường Sơn Tây
(Tác giả: Hoàng Hiệp, Tông: Dm, Nhịp: 24)
**Người đăng**: [khacle](/thanh-vien?username=khacle)| **Ngày đăng**: 17h22, 26/03/2012
Đăng nhập để thảo luận
Các câu thảo luận:
Chưa có câu thảo luận nào
Chưa có câu thảo luận nào
Một số bài khác:
-
[Đất Nước](/not-nhac/dat-nuoc)| Tác giả: Phạm Minh Tuấn | Tông: Cm | Nhịp: 68 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 15h34, 26/03/2012)
-
[Dáng Đứng Bến Tre](/not-nhac/dang-dung-ben-tre-7031)| Tác giả: Nguyễn Văn Tý | Tông: F | Nhịp: 24 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 15h33, 26/03/2012)
-
[Cô Gái Mở Đường](/not-nhac/co-gai-mo-duong)| Tác giả: Xuân Giao | Tông: G | Nhịp: 24 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 15h33, 26/03/2012)
-
[Bài Ca Trường Sơn](/not-nhac/bai-ca-truong-son-8987)| Tác giả: Trần Chung | Tông: B | Nhịp: 44 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 15h33, 26/03/2012)
-
[Bài Ca Hy Vọng](/not-nhac/bai-ca-hy-vong)| Tác giả: Văn Ký | Tông: F | Nhịp: 68 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 15h33, 26/03/2012)
-
[Chiếc Gậy Trường Sơn](/not-nhac/chiec-gay-truong-son-1739)| Tác giả: Phạm Tuyên | Tông: Em | Nhịp: 24 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 22h23, 25/03/2012)
-
[Tìm Lại Giấc Mơ](/not-nhac/tim-lai-giac-mo)| Tác giả: Không Biết | Tông: Am | Nhịp: 24 | Nhạc cụ: Organ ( [huynhdoan2000](/thanh-vien?username=huynhdoan2000)| 20h46, 25/03/2012)
-
[Chiếc Áo Bà Ba](/not-nhac/chiec-ao-ba-ba)| Tác giả: Trần Thiện Thanh | Tông: Am | Nhịp: 44 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 17h35, 23/03/2012)
-
[Tiếng Đàn Ta Lư](/not-nhac/tieng-dan-ta-lu)| Tác giả: Huy Thục | Tông: G | Nhịp: 24 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 10h55, 21/03/2012)
-
[Thành Phố Tình Yêu Và Nỗi Nhớ](/not-nhac/thanh-pho-tinh-yeu-va-noi-nho)| Tác giả: Phạm Minh Tuấn | Tông: Em | Nhịp: 68 | Nhạc cụ: Organ ( [khacle](/thanh-vien?username=khacle)| 10h31, 21/03/2012)

Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

X-Content-Encoded-By: Joomla! 1.5

Set-Cookie: ja_purity_tpl=ja_purity; expires=Wed, 09-Sep-2015 17:51:17 GMT; path=/

Via: 1.1 varnish-v4

X-Cache: MISS

Accept-Ranges: bytes


markdown:
Ngẫm nghĩ triết lý giáo dục của các nước - Bài 2
Bình Phước:
Góp ý về kỳ thi 2 trong 1:
Vĩnh Phúc:
Hồi âm:
Vĩnh Phúc:
Điều tra theo đơn thư bạn đọc:
GS.TS Phạm Tất Dong:
Đơn vị quảng cáo:
0914 640 088 (Ms.Trang)
Email: quangcao@admicro.vn
Tel: 844 39748899 Ext:2222 Website: www.admicro.vn
Hỗ trợ và CSKH: 01268 269 779 (Ms. Thơm)
Các mảng: gia đình
- công nghệ -
game - giải trí , xã hội.

Server: dantri-rl-us

Cache-Control: public, max-age=120


markdown:
Đơn vị quảng cáo:
01287 078 866 (Ms.Luận)
Email: quangcao@admicro.vn
Tel: 844 39748899 Ext:2233 Website: www.admicro.vn
Hỗ trợ và CSKH: 01268 269 779 (Ms. Thơm)
Các mảng: gia đình
- công nghệ -
game - giải trí , xã hội.


markdown:
Theo quyết định khởi tố này, Trần Đại Phúc (30 tuổi), ngụ đường Xô Viết Nghệ Tĩnh, P.25, Q.Bình Thạnh, TPHCM, nguyên là trung úy CSCĐ thuộc Trung đoàn Cảnh sát cơ động TPHCM để điều tra làm rõ về hành vi: “Chống người thi hành công vụ”. Việc đọc lệnh bắt giữ được tiến hành ngay tại nhà riêng.
Trước đó, ngày 1/8, Trung đoàn CSCĐ đã đình chỉ công tác đối với Phúc.Và đến chiều 3/8, Trung đoàn tiếp tục ra quyết định kỷ luật tước quân tịch, khai trừ Đảng đối với Trần Đại Phúc.
Một trong 2 “nhân vật chính” của sự việc này là thượng sĩ Văn Thành Luân đến nay vẫn chưa có ý kiến gì. Trung tá Nguyễn Văn Thương – Đội trưởng đội CSGT Hàng Xanh thuộc Phòng CSGT đường bộ - đường sắt (PC67) Công an TPHCM, đơn vị quản lý thượng sĩ Luân cho biết, hiện đơn vị không điều động cán bộ này xuống đường làm nhiệm vụ. Luân phải luôn túc trực tại cơ quan để viết tường trình, làm việc với cơ quan CSĐT phục vụ quá trình điều tra vụ án.
Quảng cáo bởi ADMICRO
Kon Tum quyết tâm cải thiện PCI
“Bí quyết” cải thiện môi trường đầu tư
Phân bón Năm Sao: Thúc đẩy cuộc “cách mạng xanh” trong nông nghiệp
Lợi thế của Toyota Long Biên
Diễn đàn “Kết nối Ngân hàng - Doanh nghiệp”: Bắt tay nhau gỡ khó
Ngân hàng-Doanh nghiệp: Cần những kết nối mạnh hơn
Sân bay Quốc tế Long Thành: Cần nhưng có đủ?
TP HCM: “Ngâm” bãi đậu xe ngầm
Cân kiểm tra tải trọng xe lưu động: Vì sao có sai số ?
Triển khai cân kiểm tra tải trọng xe lưu động trên toàn quốc: Vì sao có sai số ?
© Bản quyền của Báo Diễn Đàn Doanh Nghiệp điện tử
Số giấy phép: 79/GP-TTĐT ngày 20/4/2011 - Tổng biên tập: Phạm Ngọc Tuấn
Phó Tổng biên tập phụ trách: Lại Hợp Nhân; Phụ trách biên tập: Nguyễn Thị Thanh
Lan
Điện thoại: (04) 35771239
Liên hệ quảng cáo online: Khu vực phía Bắc :- Hotline: 098 3926618 – Mrs Hà - Email:
lehavcci2003@yahoo.com
Khu vực phía Nam: - Hotline: 091 8278287 – Mr Trung - Email:
thanhtrungvcci@gmail.com
Hỗ trợ & CSKH: 01268 269 779 (Ms. Thơm)
Liên hệ quảng cáo báo giấy: Phòng Kinh tế * Điện thoại: 04.35743990
Toàn cảnh Lễ đón nhận Huân chương Lao động hạng Nhất của VCCI
Giá dầu giảm 300 đồng/lít, giá xăng giữ nguyên
Triển lãm Taiwan Excellence hấp dẫn người tiêu dùng TP HCM
SCB ra mắt trung tâm dịch vụ khách hàng 24/7
Tinh Vân tham dự triển lãm Game Tokyo 2014


markdown:
Liên hệ quảng cáo:
xem chi tiết tại đây
Hocmai.vn
Tin tức
Trang chủ diễn đàn
Đăng ký
Tìm kiếm
Bài viết trong ngày
Đánh dấu đã đọc
Diendan.hocmai.vn - Học thày chẳng tày học bạn!
»
Vật lí
»
Vật lí lớp 9
» Đề thi học sinh giỏi môn Vật lý năm học 2013-2014 thành phố Hà Nội-một bài nhiệt có đáp án đáng ngờ
Ðiều chỉnh
Tìm trong bài viết
Xếp bài
#
1
11-04-2013
duynghia1998
Thành viên
Thành viên của lớp
Tham gia : 14-06-2009
Bài viết: 1
Đã cảm ơn
: 0 Được cảm ơn 3 lần với 1 bài viết
Đề thi học sinh giỏi môn Vật lý năm học 2013-2014 thành phố Hà Nội-một bài nhiệt có đáp án đáng ngờ
Vừa rồi em đã đi thi học sinh giỏi môn vật lý cấp thành phố. Em có chụp được đề và đáp án từ 1 giáo viên chấm thi. Như thường lệ, chúng ta hiếm khi thấy được đề thi học sinh giỏi cấp thành phố Hà Nội nào mà lại cung cấp hẳn biểu điểm và đáp án chi tiết ra ngoài để in ra sách vở, nhất là những năm gần đây.
Đọc đáp án này, em thấy có điều vô lý ở câu hỏi số 1. Ta thấy có dòng giả thiết sự cân bằng nhiệt được thiết lập ngay khi giọt nước nhỏ xuống và thấy đồ thị cong chứ không phải là 1 đường thẳng. Như vậy ở đây sau mỗi lần nhỏ 1 giọt nước xuống là có sự cân bằng nhiệt và khi đó ca nước to đã có thêm 1 lượng x nước (x là khối lượng 1 giọt nước).
Như vậy khi giọt nước thứ hai nhỏ xuống sẽ trao đổi nhiệt với m+x (kg) ( m là khối lượng nước ban đầu trong ca). Tương tự đến giọt thứ 100 ta sẽ xó phương trình cân bằng của 1 gọt nước ở tx và m+99x(kg) nước ở t99. Tương tự, ta sẽ có phương trình cân bằng nhiệt của 1 giọt nước ở tx với m+249x ở t249.
Vậy nhờ các anh chị xem xét giúp em:
- Cách giải trong đáp án có chính xác hay không?
- Nếu cách giải của đáp án chưua chính xác thì cách giải quyết bài toán này là gì?
- Nếu cách giải của đáp án là đúng thì phiền các anh chị chứng minh giúp em
- Nếu cách giải đáp án sai liệu em có được kiện để nâng điểm hay không?
Xin cảm ơn các anh chị đã đọc chủ đề của em và vì đây là bài đầu tiên em viết nên có lẽ sẽ có sơ suất, mong anh chị thông cảm
Bạn ơi mem ko dùng chữ đỏ. và nhớ ko được viết size quá lớn nhé.
Thân! Chúc bạn học tốt.
Thay đổi nội dung bởi:
tranlinh98
, 13-04-2013 lúc
19:46
. Lý do: size
Có 3 thành viên đã gửi lời cảm ơn đến duynghia1998 với bài viết này:
dinhthimai9x
,
huuthongliketao
,
hv4mevn
duynghia1998
Xem hồ sơ
Gửi tin nhắn tới duynghia1998
Tìm bài viết của duynghia1998
#
2
12-04-2013
hv4mevn
MEM VIP
Tổ phó
Tham gia : 15-09-2011
Đến từ: THPT Chuyên Trần Phú Hải Phòng
Bài viết: 199
Điểm học tập:111
Đã cảm ơn
: 180 Được cảm ơn 128 lần
Bài nhỏ giọt này khá quen thuộc mà.Trong đề thi HSG Vĩnh Phúc hoặc đề Hưng Yên xuất hiện rồi
Mình giải thích như thế này
Chả là nếu là n_1 thì ứng với m_1
Còn là n_2 thì ứng với m_2
m_1 và m_2 ở đây là hai trường hợp khác nhau.
Cách của bạn có chút lỗi nho nhỏ là ở đây là khối lượng các giọt là như nhau nên khối lượng của giọt n_1 giọt là n_1*m_1
Nhận tiên cảm ơn về cái đề nhé
__________________
Be proud of physic gifted class member
tranlinh98
Có 3 thành viên đã gửi lời cảm ơn đến hv4mevn với bài viết này:
crackjng_tjnhnghjch
,
linh234
,
tranlinh98
hv4mevn
Xem hồ sơ
Gửi tin nhắn tới hv4mevn
Tìm bài viết của hv4mevn
#
3
25-03-2014
attq
Thành viên
Tham gia : 25-03-2014
Bài viết: 1
Đã cảm ơn
: 0 Được cảm ơn 0 lần
Thực ra câu này là đúng mà bạn, 2 phương trình đó là chỉ 2 lần Cb nhiệt, 1 lần nhỏ 100 giọt 1 lúc, 1 lần nhỏ 250 giọt 1 lúc
attq
Xem hồ sơ
Gửi tin nhắn tới attq
Tìm bài viết của attq
Chia sẻ/đánh dấu bài viết
Facebook
Google
«
Chủ đề trước
|
Chủ đề sau
»
Ðiều chỉnh
Tìm trong bài viết
Tạo trang in
Email trang này
Tìm trong bài viết
:
Tìm chi tiết
Xếp bài
Chế độ bình thường
Chuyển sang chế độ pha trộn
Chuyển sang chế độ dạng cây
Quyền hạn của bạn
Bạn
không thể
tạo chủ đề mới
Bạn
không thể
gửi trả lời
Bạn
không thể
đăng tập đính kèm
Bạn
không thể
sửa bài của mình
BB code
là
Mở
Smilies
đang
Mở
[IMG]
đang
Mở
HTML đang
Tắt
Qui định Diendan.hocmai.vn
Bài giảng mới
Vật lí 12 - Thầy Đặng Việt Hùng (2014-2015) : Bài 4. Mẫu nguyên tử Bohr
Toán 10 - Thầy Lưu Huy Thưởng : Bài 15. Một số PP giải hệ phương trình (Phần 01)
Bổ trợ và Nâng cao kiến thức Ngữ văn 8 : Đánh nhau với cối xay gió (Phần hai)
Hình học tổ hợp - Thầy Phan Huy Khải : Bài 06. Nguyên lý Dirichlet trong các bài toán về tô màu
Toán cơ bản và nâng cao lớp 8 : Bài 4. Đường trung bình của tam giác, hình thang
Toán cơ bản và nâng cao lớp 8 : Bài 5. Những hằng đẳng thức đáng nhớ (phần 3)
Toán cơ bản và nâng cao lớp 8 : Bài 4. Những hằng đẳng thức đáng nhớ (phần 2)
Toán nâng cao lớp 7 : Bài 3. Tam giác (tiết 3)
Toán nâng cao lớp 7 : Bài 2. Tam giác (tiết 2)
Hóa học 11- Thầy Phạm Ngọc Sơn : Bài 2. Bài toán về hidrocabon no
Đề thi mới
Hóa học 10 : Chương IV. Phản ứng hoá học
Hóa học 10 : Chương III. Liên kết hóa học
Hóa học 10 : Chương I. Nguyên tử
Hóa học 10 : Chương II. Bảng HTTH các nguyên tố hoá học
Toán 11 : Chương 2. Tổ hợp và xác suất
Tiếng Anh 10 - cô Nguyễn Thị Phương 10 : Pronunciation test
Internal Test 9 : Hocmai.vn contest 2 2014.08
Luyện thi đại học KIT-3: Môn Tiếng Anh (Cô Nguyễn Ngọc An) 12 : Đề thi tự luyện số 04 (Đề Online)
Luyện thi đại học KIT-3: Môn Tiếng Anh (Cô Nguyễn Ngọc An) 12 : Đề thi tự luyện số 05 (Đề Online)
Luyện thi đại học KIT-3: Môn Tiếng Anh (Cô Nguyễn Ngọc An) 12 : Đề thi tự luyện số 03 (Đề Online)
-- English (US)
-- Vietnamese
-
Hocmai.vn
-
Lưu trữ
-
Trở lên trên
Múi giờ GMT +7. Hiện tại là
00:52
.
Powered by: vBulletin v3.x.x Copyright ©2000-2014, Jelsoft Enterprises Ltd.
Hocmai.vn
Diễn đàn
Tin tức
Thỏa thuận sử dụng
Bảo vệ riêng tư
Liên hệ
Luyện thi đại học KIT-1
luyện thi đại học môn toán
luyện thi đại học môn vật lí
luyện thi đại học môn hóa học
luyện thi đại học môn ngữ văn
luyện thi đại học môn sinh học
luyện thi đại học môn tiếng anh
Luyện thi đại học KIT-2
luyện giải đề môn toán
luyện giải đề môn vật lí
luyện giải đề môn hóa học
luyện giải đề môn ngữ văn
luyện giải đề môn sinh học
luyện giải đề môn tiếng anh
Luyện thi đại học KIT-3
luyện thi cấp tốc môn toán
luyện thi cấp tốc môn vật lí
luyện thi cấp tốc môn hóa học
luyện thi cấp tốc môn ngữ văn
luyện thi cấp tốc môn sinh học
luyện thi cấp tốc môn tiếng anh
Khóa học cơ bản
học thêm môn toán lớp 12
học thêm môn hóa học lớp 12
học thêm môn vật lí lớp 12
học thêm môn toán lớp 11
học thêm môn vật lí lớp 11
học thêm môn hóa học lớp 11
Luyện thi đại học
|
luyen thi dai hoc
|
luyện thi cấp tốc
|
luyen thi cap toc
|
luyện thi đại học cấp tốc
|
luyen thi dai hoc cap toc
|
Thi thử đại học
|
thi thu dai hoc
|
thư viện đề thi
|
thu vien de thi
|
Đề thi thử đại học
|
de thi thu dai hoc
|
Đề thi đại học
|
de thi dai hoc
|
xem điểm thi đại học
|
xem diem thi dai hoc
|
điểm thi đại học
|
diem thi dai hoc
|
giáo viên giỏi
|
giao vien gioi
|
ôn thi đại học
|
on thi dai hoc
|
ôn thi cấp tốc
|
on thi cap toc
|
ôn thi đại học cấp tốc
|
on thi dai hoc cap toc
|
tài liệu ôn thi đại học
|
tai lieu on thi dai hoc
|
Đáp án đề thi tốt nghiệp
|
dap an de thi tot nghiep
|
giải đề thi tốt nghiệp
|
giai de thi tot nghiep
|
học online
|
hoc online
|
học trực tuyến
|
hoc truc tuyen
|
học thêm toán
|
hoc them toan
|
học thêm lí
|
hoc them li
|
học thêm hóa
|
hoc them hoa
|
học thêm văn
|
hoc them van
|
học thêm tiếng anh
|
hoc them tieng anh
|
học thêm sinh
Giấy phép cung cấp dịch vụ mạng xã hội trực tuyến số 196/GXN-TTĐT Cục Quản lý PTTH&TTĐT cấp ngày 11/11/2011.
Ẩn
Xem
Đ�ng

Server: nginx

Cache-Control: no-cache


markdown:
Chào em, em có thể tham khảo hướng dẫn cụ thể về chế độ dinh dưỡng và thực đơn cho lứa tuổi của bé tại link sau:
http://www.dinhduong.com.vn/story/che-o-dinh-du-ng-va-thuc-mau-cho-be-tu-1-2-tuoi
Ở lứa tuổi này (18 tháng) em vẫn nên cho bé ăn cháo là thích hợp nhất. Em nên nấu cháo cho bé như sau: nên nấu một nồi cháo trắng cho cả ngày, mỗi bữa em lấy ra một lượng vừa đủ cho thịt, cá, tôm hoặc cua... đã băm hoặc xay nhuyễn vào quấy đều và cho lên bếp nấu chín. Khi cháo đã chín thì em cho rau hoặc củ, quả đã băm hoặc nghiền nhuyễn vào đợi cháo sôi lại thì nêm gia vị, cho dầu ăn hoặc mỡ vào khuấy đều và bắc xuống là được.

Cache-Control: no-cache, no-store, must-revalidate

Content-Encoding: deflate


markdown:
Tuấn.Doctor
10-01-2012, 12:17 PM
Như chúng ta đã biết, động cơ xe Dream II vận hành trơn tru, mát mẻ... dưới sự hỗ trợ của dầu nhớt. Dầu nhớt không những giúp các chi tiết chuyển động êm ái, bao kín buồng đốt, bôi trơn các bề, mặt tiếp xúc trong chuyển động, giảm tiếng ồn... mà còn là nhân tố làm cho động cơ không bị quá nóng... gây giãn nở, hư hỏng các chi tiết.
Trong quá trình vận hành của động cơ, dưới tác động của ma sát, va đập, nhiệt độ... dầu nhớt sẽ bị biến chất như giảm độ nhớt, giảm khả năng bôi trơn, chứa nhiều tạp chất, mạt kim loại... cho nên sau một khoảng chạy thời gian nhất định chúng ta buộc phải thay thế mới.
CHÚ Ý:
Việc thay dầu mới phải chú ý một số đặc điểm sau:
1. Đúng thời điểm: việc này không những giúp tăng tuổi thọ động cơ, tăng cường trơn tru, êm ái, mát mẻ trong vận hành... mà còn giúp chúng ta giảm chi phí nếu thay dầu quá sớm
2. Xả thật sạch dầu cũ: Dầu trong động cơ xe Dream có thể tích từ 0.7-0.9 lít. Tổng thể tích dầu trong động cơ là 0.9 lít, nếu xả dầu thông qua ốc xả dầu dưới gầm máy thì bên trong động cơ vẫn còn lại khoảng 0.1-0.2 lít. Như vậy nếu xả dầu thông thường người ta chỉ cần thêm mới 0.8 lít. Nếu xả hết (nghiêng xe nhiều lần, bổ máy...) thì lượng dầu thêm mới là 0.9-1 lít.
3. Tránh sử dụng vòi bơm hơi áp lực để dồn dầu ra ngoài bởi lẽ lượng không khí nén vào động cơ gây oxy hóa các bề mặt làm việc
4. Không nên quá tiết kiệm chi phí, nên sử dụng loại dầu có chất lượng tốt, đạt các thông số kỹ thuật (xem chi tiết trong phần dầu nhớt và các thông số)
5. Không nên dùng loại dầu quá đặc nhằm với mục đích làm êm động cơ khi vận hành
6. Không nên dùng dầu quá loãng nhằm đưa nhanh dầu tới các bộ phận, chi tiết phải dùng bơm dầu (đầu bò)
7. Không nên thay dầu lúc động cơ vừa vận hành xong, máy đang quá nóng... dẫn tới việc biến dạng của các chi tiết
8. Không nên dùng dầu diezen, xăng hoặc dầu hỏa để đổ thẳng vào nhằm rửa động cơ gây hỏng các chi tiết gioăng, phớt, đệm...
Trước khi quyết định thay dầu hay không ta phải kiểm tra xem dung lượng và chất lượng dầu hiện tại của động cơ như thế nào. Thông thường các chủ xe thường thay dầu khi xe chạy được khoảng từ 1-1.200km hoặc hàng tháng... tuy nhiên không phải lúc nào chúng ta cũng có thể nhớ được thời điểm thay hoặc chưa chắc đến thời điểm đó mà dầu đã phải thay. Cho nên trước khi thay hoặc thường xuyên kiểm tra dầu.
KIỂM TRA:
Việc kiểm tra được tiến hành như sau:
1. Động cơ phải dừng hoạt động 30-60 phút.
2. Dựng chân chống giữa xe
3. Dùng kìm lót giẻ mở que thăm dầu
4. Lấy giẻ lau sạch que thăm dầu
5. Ấn que thăm trở lại lỗ thăm dầu (không cần vặn gen)
6. Rút que thăm ra quan sát
7. Khoảng ướt của dầu trên que thăm phải nằm trong khoảng có đánh dấu bằng hàng chữ X (nếu que không ướt => hết dầu, nếu trên vùng chữ X => thừa dầu)
8. Chấm que thăm lên bưởng máy (1 giọt dầu) và quan sát:
- Nếu giọt dầu còn màu vàng nhạt, loãng to ra một cách từ từ => dầu còn sử dụng được
- Nếu giọt dầu có màu xám đen, loãng ra nhanh chóng => dầu đã đến lúc phải thay
THAY DẦU
Quá trình thay dầu được tiến hành như sau:
1. Chuẩn bị công cụ:
- Kìm
- Khăn sạch
- Cờ-lê tuýp hoặc tròng 17
- Phễu (nếu có)
- Khay chứa dầu xả (dung tích tối thiểu là 0.9-1 lít)
2. Chuẩn bị:
- Dựng chân chống giữa xe
- Chờ động cơ bớt nóng cho tới khi sờ vào bưởng máy thấy ấm tay đồng thời chờ dầu từ các chi tiết khác hồi hết về cạc-te chứa dầu
- Dùng kìm (lót giẻ ở miệng) mở que thăm dầu, dùng giẻ lau sạch que thăm
- Để khay chứa dầu xả xuống gầm máy
- Dùng cờ-lê tuýt hoặc cờ-lê tròng 17 mở bu-lông rốn dầu dưới gầm máy (vì bu-lông là gen phải bắt ngược lên cho nên khi tháo phải cẩn thận, tránh nhầm chiều của gen)
- Chờ dầu tự chảy hết
- Nghiêng xe về bên phải, chờ 10-20 giây rồi lại nghiêng về bên trái (làm như thế 2-3 lần để xả sạch dầu)
- Vệ sinh sạch bu-lông, dùng tay lắp trở lại gầm máy (thấy gen ăn nhẹ nhàng mới được, nếu thấy cứng phải tháo ra vặn lại cho tới khi êm tay - đúng gen) (chú ý siết tới tay, không cần phải quá căng vì rất dễ làm cháy gen ở vách máy)
- Đổ dầu mới vào động cơ
- Lắp que thăm dầu, dùng kìm lót giẻ vặn tới tay.
- Nghiêng xe sang trái, phải vài giây để dầu chảy đều
- Đạp cần khởi động 5-7 lần (tắt chìa khóa điện) để bơm dầu tới các chi tiết
- Mở chìa khóa điện, đạp nổ hoặc đề... và để động cơ nổ trong vài phút
- Dùng giẻ vệ sinh các vết dầu nếu bị văng ra ngoài
- Đổ dầu thải vào nơi quy định hoặc cho vào hộp dùng để bôi trơn cho xích sau này (không nên đổ dầu ra cống rãnh hoặc các nơi khác gây ô nhiễm môi trường)
Chúc các bạn lái xe an toàn, sử dụng hiệu quả văn mình, giữ gìn xe đẹp!
Trong quá trình vận hành của động cơ, dưới tác động của ma sát, va đập, nhiệt độ... dầu nhớt sẽ bị biến chất như giảm độ nhớt, giảm khả năng bôi trơn, chứa nhiều tạp chất, mạt kim loại... cho nên sau một khoảng chạy thời gian nhất định chúng ta buộc phải thay thế mới.
CHÚ Ý:
Việc thay dầu mới phải chú ý một số đặc điểm sau:
1. Đúng thời điểm: việc này không những giúp tăng tuổi thọ động cơ, tăng cường trơn tru, êm ái, mát mẻ trong vận hành... mà còn giúp chúng ta giảm chi phí nếu thay dầu quá sớm
2. Xả thật sạch dầu cũ: Dầu trong động cơ xe Dream có thể tích từ 0.7-0.9 lít. Tổng thể tích dầu trong động cơ là 0.9 lít, nếu xả dầu thông qua ốc xả dầu dưới gầm máy thì bên trong động cơ vẫn còn lại khoảng 0.1-0.2 lít. Như vậy nếu xả dầu thông thường người ta chỉ cần thêm mới 0.8 lít. Nếu xả hết (nghiêng xe nhiều lần, bổ máy...) thì lượng dầu thêm mới là 0.9-1 lít.
3. Tránh sử dụng vòi bơm hơi áp lực để dồn dầu ra ngoài bởi lẽ lượng không khí nén vào động cơ gây oxy hóa các bề mặt làm việc
4. Không nên quá tiết kiệm chi phí, nên sử dụng loại dầu có chất lượng tốt, đạt các thông số kỹ thuật (xem chi tiết trong phần dầu nhớt và các thông số)
5. Không nên dùng loại dầu quá đặc nhằm với mục đích làm êm động cơ khi vận hành
6. Không nên dùng dầu quá loãng nhằm đưa nhanh dầu tới các bộ phận, chi tiết phải dùng bơm dầu (đầu bò)
7. Không nên thay dầu lúc động cơ vừa vận hành xong, máy đang quá nóng... dẫn tới việc biến dạng của các chi tiết
8. Không nên dùng dầu diezen, xăng hoặc dầu hỏa để đổ thẳng vào nhằm rửa động cơ gây hỏng các chi tiết gioăng, phớt, đệm...
Trước khi quyết định thay dầu hay không ta phải kiểm tra xem dung lượng và chất lượng dầu hiện tại của động cơ như thế nào. Thông thường các chủ xe thường thay dầu khi xe chạy được khoảng từ 1-1.200km hoặc hàng tháng... tuy nhiên không phải lúc nào chúng ta cũng có thể nhớ được thời điểm thay hoặc chưa chắc đến thời điểm đó mà dầu đã phải thay. Cho nên trước khi thay hoặc thường xuyên kiểm tra dầu.
KIỂM TRA:
Việc kiểm tra được tiến hành như sau:
1. Động cơ phải dừng hoạt động 30-60 phút.
2. Dựng chân chống giữa xe
3. Dùng kìm lót giẻ mở que thăm dầu
4. Lấy giẻ lau sạch que thăm dầu
5. Ấn que thăm trở lại lỗ thăm dầu (không cần vặn gen)
6. Rút que thăm ra quan sát
7. Khoảng ướt của dầu trên que thăm phải nằm trong khoảng có đánh dấu bằng hàng chữ X (nếu que không ướt => hết dầu, nếu trên vùng chữ X => thừa dầu)
8. Chấm que thăm lên bưởng máy (1 giọt dầu) và quan sát:
- Nếu giọt dầu còn màu vàng nhạt, loãng to ra một cách từ từ => dầu còn sử dụng được
- Nếu giọt dầu có màu xám đen, loãng ra nhanh chóng => dầu đã đến lúc phải thay
THAY DẦU
Quá trình thay dầu được tiến hành như sau:
1. Chuẩn bị công cụ:
- Kìm
- Khăn sạch
- Cờ-lê tuýp hoặc tròng 17
- Phễu (nếu có)
- Khay chứa dầu xả (dung tích tối thiểu là 0.9-1 lít)
2. Chuẩn bị:
- Dựng chân chống giữa xe
- Chờ động cơ bớt nóng cho tới khi sờ vào bưởng máy thấy ấm tay đồng thời chờ dầu từ các chi tiết khác hồi hết về cạc-te chứa dầu
- Dùng kìm (lót giẻ ở miệng) mở que thăm dầu, dùng giẻ lau sạch que thăm
- Để khay chứa dầu xả xuống gầm máy
- Dùng cờ-lê tuýt hoặc cờ-lê tròng 17 mở bu-lông rốn dầu dưới gầm máy (vì bu-lông là gen phải bắt ngược lên cho nên khi tháo phải cẩn thận, tránh nhầm chiều của gen)
- Chờ dầu tự chảy hết
- Nghiêng xe về bên phải, chờ 10-20 giây rồi lại nghiêng về bên trái (làm như thế 2-3 lần để xả sạch dầu)
- Vệ sinh sạch bu-lông, dùng tay lắp trở lại gầm máy (thấy gen ăn nhẹ nhàng mới được, nếu thấy cứng phải tháo ra vặn lại cho tới khi êm tay - đúng gen) (chú ý siết tới tay, không cần phải quá căng vì rất dễ làm cháy gen ở vách máy)
- Đổ dầu mới vào động cơ
- Lắp que thăm dầu, dùng kìm lót giẻ vặn tới tay.
- Nghiêng xe sang trái, phải vài giây để dầu chảy đều
- Đạp cần khởi động 5-7 lần (tắt chìa khóa điện) để bơm dầu tới các chi tiết
- Mở chìa khóa điện, đạp nổ hoặc đề... và để động cơ nổ trong vài phút
- Dùng giẻ vệ sinh các vết dầu nếu bị văng ra ngoài
- Đổ dầu thải vào nơi quy định hoặc cho vào hộp dùng để bôi trơn cho xích sau này (không nên đổ dầu ra cống rãnh hoặc các nơi khác gây ô nhiễm môi trường)
Chúc các bạn lái xe an toàn, sử dụng hiệu quả văn mình, giữ gìn xe đẹp!

Server: HostVDC

Set-Cookie: bb_lastactivity=0; expires=Sat, 19-Sep-2015 17:50:36 GMT; path=/


markdown:
Địa chỉ: 407 Quang Trung - Hà Đông
TP.Hà Nội
Điện thoại: 04.3311 9966
Fax: 04.33 11 78 48
Email: info@facom.com.vn
Địa chỉ: 3 Võ Thị Sáu - Đông Thành
TP.Ninh Bình
Điện thoại: 030.6567 888
Fax: 030.389 3216
Địa chỉ: Lô 27 - N2 - Cụm CN An Xá
TP.Nam Định
Điện thoại: 0350.367 3333
Fax: 0350.367 3968
Địa chỉ: 2381 Đại lộ Hùng Vương
TP. Việt Trì
Điện thoại: 0210.3813 889
Fax: 0210.3840 041
Địa chỉ: 35 Hùng Vương -Vĩnh Yên
Điện thoại: 0211.3727 099
Fax: 0211.3727 775
Địa Chỉ: 40A - Hoàng Văn Thụ - Thái Nguyên
Điện Thoại: 0280.3852150
Địa Chỉ: 90 Quang Trung - TP.Tuyên Quang
Điện Thoại: 0273.8188808
Địa chỉ: 15 Phố Phú Thọ - TP.Hải Dương
Tỉnh Hải Dương
Điện thoại: 0916 933 668
Địa chỉ: 616 Nguyễn Văn Linh - Lê Chân
TP.Hải Phòng
Điện thoại: 0313.513 383
Địa chỉ: Trung Sơn Trâm - TX.Sơn Tây
Điện thoại: 0433.614 888

Server: Apache/2.2.26 (CentOS)

Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform


markdown:
#### Xin lỗi bạn
Hệ thống không tìm thấy trang thông tin bạn cần
Bạn có thể tra cứu thông tin trên website hoặc
[Trở lại trang trước](javascript:;)
Tư vấn bán hàng
**1900 6606**
Khách hàng khiếu nại
**1900 6616**
Hệ thống không tìm thấy trang thông tin bạn cần
Bạn có thể tra cứu thông tin trên website hoặc
[Trở lại trang trước](javascript:;)

X-FIM: Enable


markdown:
[Hướng dẫn chơi](javascript:void(0);)game Cua hang nu trang | [thêm vào blog](javascript:void(0))
Nhiệm vụ của bạn là bán cho khách những món nữ trang mà họ yêu cầu.
**Cách chơi:**
Sử dụng chuột
để thực hiện các thao tác.
game liên quan
[Cửa hàng thời trang](/tinh-diem/cua-hang-thoi-trang-c145g1206b16.html)
Đang chơi: 0
[Shop hoàng gia](/tinh-diem/shop-hoang-gia-c145g1355b16.html)
Đang chơi: 0
[Cô lễ tân chăm chỉ](/tinh-diem/co-le-tan-cham-chi-c145g1386b16.html)
Đang chơi: 0
[Siêu thị đồ chơi 1-6](/tinh-diem/sieu-thi-do-choi-1-6-c145g1092b16.html)
Đang chơi: 0
## Bình luận về trò chơi Cửa hàng nữ trang
[boyphunhuan](/thong-tin-tai-khoan-a13.html?account=boyphunhuan)Gửi lúc 09:57 ngày 06/01/2014
hay
[thuphuong99](/thong-tin-tai-khoan-a13.html?account=thuphuong99)Gửi lúc 20:24 ngày 06/10/2013
game nay hay qua
[kutenhoc](/thong-tin-tai-khoan-a13.html?account=kutenhoc)Gửi lúc 09:51 ngày 15/07/2013
cug dc
[ducoke81](/thong-tin-tai-khoan-a13.html?account=ducoke81)Gửi lúc 10:13 ngày 05/07/2013
chang luu duoc diem
[haynoiyeuem](/thong-tin-tai-khoan-a13.html?account=haynoiyeuem)Gửi lúc 17:13 ngày 01/07/2013
rat hay
[Spa tại nhà 7](http://game.24h.com.vn/tinh-diem/spa-tai-nha-7-c145g2373b108.html)
Đang chơi: 123
[Bóng đá 3D](http://game.24h.com.vn/tinh-diem/bong-da-3d-c145g2372b108.html)
Đang chơi: 95
[Pikachu tình yêu](http://game.24h.com.vn/tinh-diem/pikachu-tinh-yeu-c145g2371b108.html)
Đang chơi: 72
[Phòng thủ kiểu chồn](http://game.24h.com.vn/tinh-diem/phong-thu-kieu-chon-c145g2370b108.html)
Đang chơi: 93
[Bánh kem sốt socola](http://game.24h.com.vn/tinh-diem/banh-kem-sot-socola-c145g2369b108.html)
Đang chơi: 25
[Tiêu diệt hài cốt](http://game.24h.com.vn/tinh-diem/tieu-diet-hai-cot-c145g2368b108.html)
Đang chơi: 15
[Công chúa giết thời gian](http://game.24h.com.vn/tinh-diem/cong-chua-giet-thoi-gian-c145g2367b108.html)
Đang chơi: 54
[Nghệ thuật xăm hình](http://game.24h.com.vn/tinh-diem/nghe-thuat-xam-hinh-c145g2366b108.html)
Đang chơi: 38
[Rambo kiểu mới](http://game.24h.com.vn/tinh-diem/rambo-kieu-moi-c145g2365b108.html)
Đang chơi: 36
[Làm tóc cho Taylor Swift](http://game.24h.com.vn/tinh-diem/lam-toc-cho-taylor-swift-c145g2364b108.html)
Đang chơi: 45
[Nông dân tổ lái](http://game.24h.com.vn/tinh-diem/nong-dan-to-lai-c145g2363b108.html)
Đang chơi: 23
[Phù thủy xuất chiêu](http://game.24h.com.vn/tinh-diem/phu-thuy-xuat-chieu-c145g2362b108.html)
Đang chơi: 20
[Chiến tuyến phòng thủ 6](http://game.24h.com.vn/tinh-diem/chien-tuyen-phong-thu-6-c145g2361b108.html)
Đang chơi: 33
[Bánh kem mừng sinh nhật](http://game.24h.com.vn/tinh-diem/banh-kem-mung-sinh-nhat-c145g2360b108.html)
Đang chơi: 46
[Phòng tuyến cuối cùng 4](http://game.24h.com.vn/tinh-diem/phong-tuyen-cuoi-cung-4-c145g2359b108.html)
Đang chơi: 4
[Rạp xiếc mèo](http://game.24h.com.vn/tinh-diem/rap-xiec-meo-c145g2358b108.html)
Đang chơi: 5
[Game show tình yêu](http://game.24h.com.vn/tinh-diem/game-show-tinh-yeu-c145g2357b108.html)
Đang chơi: 38
[Đỗ xe mini](http://game.24h.com.vn/tinh-diem/do-xe-mini-c145g2356b108.html)
Đang chơi: 20
[Phỏng vấn thời trang](http://game.24h.com.vn/tinh-diem/phong-van-thoi-trang-c145g2355b108.html)
Đang chơi: 43
[Mảnh ghép quá khứ](http://game.24h.com.vn/tinh-diem/manh-ghep-qua-khu-c145g2354b108.html)
Đang chơi: 13

Content-Type: text/html; charset=Utf-8


markdown:
Sự kiện
Tin mới
Xem thêm »
Lịch sự kiện
CN
T.2
T.3
T.4
T.5
T.6
T.7

Access-Control-Allow-Headers: accept, maxdataserviceversion, origin, x-requested-with, dataserviceversion

Connection: keep-alive

Keep-Alive: timeout=3, max=20


markdown:
|
|
|Hình ảnh khu đô thị cực đẹp |
|
|
|Chiêm ngưỡng cặp đôi với vẽ đẹp hoàn hảo |
|
|
|Game Girl 3D cực đỉnh |
|
|
|Xuân Mai - những hình ảnh missteen |
|
|
|Jenifer Phạm - vai trần gợi cảm |
|
|
|Minh Hằng - cô ca sỹ xinh đẹp dễ thương |
|
|
|Những con MA 3D cực đỉnh trong Games Ghost 3D |

Server: Apache/2.2.25 (Unix) mod_ssl/2.2.25 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17

Vary: Accept-Encoding,User-Agent


markdown:
Áo thun (phương ngữ miền Nam) hay áo phông (phương ngữ miền Bắc) thường được dệt theo nốt jersey và bằng sợi cotton, đôi khi bằng chất liệu khác, tạo sự mềm mại đặt trưng. Áo thun có thể được trang trí bằng chữ và/hoặc hình ảnh thường dùng để quảng bá điều gì đó hoặc quảng cáo sản phẩm, công ty hoặc trang web. Thời trang áo thun nam bao gồm nhiều kiểu cho nữ lẫn nam, mọi lứa tuổi và kích cỡ. Áo thun được phát triển từ quần áo lót được sử dụng hồi thế kỷ 19, dùng mặc thành hai phần áo lót và quần lót bên trong những bộ áo liền quần bên ngoài trong đó phần áo lót đủ dài để cho vào bên trong lưng quần. Áo thun, có nút hoặc không, được dùng bởi những người thợ mỏ và công nhân khuân vác nửa sau thế kỷ 19 với mục đích là tiện lợi trong thời tiết nóng. Áo thun, được mặc tròng đầu không cần gài nút, đầu tiên trở nên phổ biến ở Hoa Kỳ khi chúng được phát bởi Hải quân Hoa Kỳ trong chiến tranh Tây Ban Nha-Mỹ. Đây là những chiếc áo cổ tròn hoặc không cổ, tay ngắn, màu trắng bằng cotton để mặc lót trong bộ đồng phục. Chúng trở nên thông dụng hơn cho thủy thủ trong các nhóm làm việc và trong thời tiết nhiệt đới để tránh làm dơ chiếc đồng phục jacket. Áo thun dễ mặc, dễ ...
[Xem tiếp »](http://ithoitrang.vn/lich-su-hinh-thanh-va-phat-trien-cua-ao-thun-nam-dep-nhu-ngay-nay.html)
[Lịch sử hình thành và phát triển của áo thun nam đẹp như ngày nay](http://ithoitrang.vn/lich-su-hinh-thanh-va-phat-trien-cua-ao-thun-nam-dep-nhu-ngay-nay.html)
Áo thun (phương ngữ miền Nam) hay áo phông (phương ngữ miền Bắc) thường được dệt theo nốt jersey và bằng sợi cotton, đôi khi bằng chất liệu khác, tạo sự mềm mại đặt trưng. Áo thun có thể được trang trí bằng chữ và/hoặc hình ảnh thường dùng để quảng bá điều gì đó hoặc quảng cáo sản phẩm, công ty hoặc trang web. Thời trang áo thun nam bao gồm nhiều kiểu cho nữ lẫn nam, mọi lứa tuổi và kích cỡ. Áo thun được phát triển từ quần áo lót được sử dụng hồi thế kỷ 19, dùng mặc thành hai phần áo lót và quần lót bên trong những bộ áo liền quần bên ngoài trong đó phần áo lót đủ dài để cho vào bên trong lưng quần. Áo thun, có nút hoặc không, được dùng bởi những người thợ mỏ và công nhân khuân vác nửa sau thế kỷ 19 với mục đích là tiện lợi trong thời tiết nóng. Áo thun, được mặc tròng đầu không cần gài nút, đầu tiên trở nên phổ biến ở Hoa Kỳ khi chúng được phát bởi Hải quân Hoa Kỳ trong chiến tranh Tây Ban Nha-Mỹ. Đây là những chiếc áo cổ tròn hoặc không cổ, tay ngắn, màu trắng bằng cotton để mặc lót trong bộ đồng phục. Chúng trở nên thông dụng hơn cho thủy thủ trong các nhóm làm việc và trong thời tiết nhiệt đới để tránh làm dơ chiếc đồng phục jacket. Áo thun dễ mặc, dễ ...


markdown:
Cám ơn bạn, bài viết của bạn đã được gửi thành công và đang chờ duyệt. Tìm hiểu thêm về cơ chế nhuận bút
Gửi thêm bài
Bài viết "Title chuẩn trên K14" đã được duyệt. Xem bài viết của bạn tại đây.
Ăn tối cũng cần phải đúng cách nhé!
Theo


markdown:
Cám ơn bạn, bài viết của bạn đã được gửi thành công và đang chờ duyệt. Tìm hiểu thêm về cơ chế nhuận bút
Gửi thêm bài
Bài viết "Title chuẩn trên K14" đã được duyệt. Xem bài viết của bạn tại đây.


markdown:
|
|
|
|
|
|
08:40 AM 08/01/2013
Địa chỉ: Km9 đường Nguyễn Trãi - Thanh Xuân - Hà Nội - Điện thoại: 06945541
*Đang cập nhật ....*
Học viện An ninh Nhân dân công bố điểm chuẩn vào trường năm 2012 như sau:
**Ngành Nghiệp vụ An ninh:** Khối A 21,5 điểm với thí sinh nam, 22,5 điểm với thí sinh nữ; khối C: 21,5 điểm với nam, 23,5 điểm với nữ; khối D1: 21,5 điểm với nam và 23 điểm với nữ. **Ngành Công nghệ thông tin: **khối A 20,5 điểm với nam và 19,5 điểm với nữ. **Ngành Ngôn ngữ Anh:** khối D1 27 điểm với nam và 31,5 điểm với nữ. **Ngôn ngữ Trung:** khối D1 21 điểm với nam và 31,5 điểm với nữ. **Ngành Xây dựng Đảng và chính quyền Nhà nước:** khối C 17,5 điểm với nam và 22 điểm với nữ; khối D1: 17,5 điểm với nam và 19,5 điểm với nữ. **Ngành Luật:** khối A 19 điểm với nam và 22,5 điểm với nữ; khối C 19,5 điểm với nam và 24,5 điểm với nữ; D1 18 điểm với nam và 21,5 điểm với nữ.
|
|
|
||
||
||
||
||
|
|
|
1
|
|
Nghiệp vụ an ninh
|
|
A
|
|
21.5
|
|
Thí sinh Nam
|
|
2
|
|
Nghiệp vụ an ninh
|
|
A
|
|
22.5
|
|
Thí sinh Nữ
|
|
3
|
|
Công nghệ thông tin
|
|
A
|
|
20.5
|
|
Thí sinh Nam
|
|
4
|
|
Công nghệ thông tin
|
|
A
|
|
19.5
|
|
Thí sinh Nữ
|
|
5
|
|
Luật
|
|
A
|
|
19
|
|
Thí sinh Nam
|
|
6
|
|
Luật
|
|
A
|
|
22.5
|
|
Thí sinh Nữ
|
|
7
|
|
Nghiệp vụ an ninh
|
|
C
|
|
21.5
|
|
Thí sinh Nam
|
|
8
|
|
Nghiệp vụ an ninh
|
|
C
|
|
23.5
|
|
Thí sinh Nữ
|
|
9
|
|
Xây dựng Đảng và chính quyền Nhà nước
|
|
C
|
|
17.5
|
|
Thí sinh Nam
|
|
10
|
|
Xây dựng Đảng và chính quyền Nhà nước
|
|
C
|
|
22
|
|
Thí sinh Nữ
|
|
11
|
|
Luật
|
|
C
|
|
19.5
|
|
Thí sinh Nam
|
|
12
|
|
Luật
|
|
C
|
|
24.5
|
|
Thí sinh Nữ
|
|
13
|
|
Ngôn ngữ Anh
|
|
D1
|
|
27
|
|
Thí sinh Nam
|
|
14
|
|
Ngôn ngữ Anh
|
|
D1
|
|
31.5
|
|
Thí sinh Nữ
|
|
15
|
|
Ngôn ngữ Trung Quốc
|
|
D1
|
|
21
|
|
Thí sinh Nam
|
|
16
|
|
Ngôn ngữ Trung Quốc
|
|
D1
|
|
31.5
|
|
Thí sinh Nữ
|
|
17
|
|
Xây dựng Đảng và chính quyền Nhà nước
|
|
D1
|
|
17.5
|
|
Thí sinh Nam
|
|
18
|
|
Xây dựng Đảng và chính quyền Nhà nước
|
|
D1
|
|
19.5
|
|
Thí sinh Nữ
|
|
19
|
|
Luật
|
|
D1
|
|
18
|
|
Thí sinh Nam
|
|
20
|
|
Luật
|
|
D1
|
|
21.5
|
|
Thí sinh Nữ
Tóm tắt:
[ công bố điểm chuẩn vào trường năm 2012 như sau: Học viện An ninh Nhân dân](http://kenhtuyensinh.vn/hoc-vien-an-ninh)
|
|
- Mỗi năm có hơn 300 ngàn sinh viên tốt nghiệp đại học và hơn 100 ngàn sinh viên tốt nghiệp hệ cao đẳng, trung cấp. Nhưng có tới hơn 75% sinh viên tốt nghiệp không tìm được việc làm.
- Theo hiệp hội các trường Đại học và Doanh nghiệp quốc gia (NACE), các phẩm chất và kỹ năng quan trọng của người đi làm theo đánh giá của nhà tuyển dụng thì điểm số học tập của bạn chỉ chiếm dưới 20% quyết định khi bạn đi phỏng vấn (Riêng ngành Y và kỹ thuật thì điểm số quan trọng hơn 1 chút).
- Vậy
rõ ràng, điểm số ở trường không hề đảm bảo cho bạn có 1 công việc như ý, vậy đâu là yếu tố quyết định còn lại? yếu tố nào giúp bạn có công việc và mức lương mong muốn? Hãy khám phá những ![]()
Kỹ năng phỏng vấn xin việc
Những tin tức đang được quan tâm:
Kênh Tuyển Sinh
[
Làm thế nào để đào vàng công nghệ? ](http://kenhtuyensinh.vn/lam-the-nao-de-dao-vang-cong-nghe)
Chương trình “Lễ hội Open House – Nghề vàng cho giới trẻ” của VTC Academy là cơ hội để quý phụ huynh và học sinh giao lưu và cảm nhận về ngành công nghệ số thực thụ, ngành được coi là sang và sáng của nền kinh tế Việt Nam
Kenhtuyensinh.vn is completely powered by the Kenh Cong Ltd.,
Cơ quan chủ quản: Công ty TNHH Quảng Cáo Trực Tuyến Kênh Cộng
Tel: (08) 22 486 453 - Email: info@kenhtuyensinh.vn
Chịu trách nhiệm xuất bản: Ngô Duy Khánh
Địa chỉ: Mỹ Thịnh Building, Lầu 6, 137 Lê Quang Định, Phường 14, Q. Bình Thạnh, Tp. HCM
Giấy phép TRANG TIN ĐIỆN TỬ số: 72/ GP-STTTT do Sở Thông Tin và Truyền Thông cấp ngày 15/09/2011
Giấy phép MẠNG XÃ HỘI số: 130/GXN-TTĐT do Cục quản lý phát thanh, Truyền hình và Thông tin điện tử cấp ngày 18/10/2012
All content Copyright © 2008-2015 Kenh Cong, Online Advertising
## Bình Luận(Có 47 bình luận)