IV. MỘT SỐ HĂM VĂ THỦ TỤC CHUẨN TRONG UNIT GRAPH 1 Mầu vă mẫu (kiểu)
a. Thủ tục nạp Font chữ
Câc font chữ nằm trong câc tập tin có phần mở rộng lă .CHR . Ðể nạp câc font chữ năy ta dùng thủ tục:
SetTextStyle(font,direction,charsize:word);
Với: Tham số font có thể nhận một trong câc giâ trị sau:
Hằng DefauFont hay giâ trị 0 Hằng TriplexFont hay giâ trị 1
Hằng SmallFont hay giâ trị 2 Hằng SansSerifFont hay giâ trị 3
Tham số direction có thể nhận một trong câc giâ trị sau:
Hằng HorizDir hay giâ trị 0 Hằng VertDir hay giâ trị 1
Tham số charsize lă cỡ ký tự vă nó có thể nhận một trong câc giâ trị từ 1 đến 10.
b. Thủ tục đặt chế độ căn chỉnh chuỗi văn bản
SetTextJustify(horiz, vert :word);
Trong đó:
Tham số horiz có thể lă một trong câc hằng: LeftText, CenterText, RightText. Tham số vert có thể lă một trong câc hằng: BottomText, CenterText, TopText. c. Thủ tục hiển thị chuỗi văn bản tại vị trí con nhây
OutText (text:string);
d. Thủ tục hiển thị chuỗi văn bản tại tọa độ (x,y)
OutTextXY (x,y:integer;text:string); 6. Cửa sổ trong chế độ đồ họa (ViewPort)
Ðể thiết lập một cửa sổ trín măn hình đồ họa, ta sử dụng đến chức năng của ViewPort. Cửa sổ ViewPort được xem như một vùng chữ nhật trín măn hình độ họa, nó giống như thủ tục Window trong chế độ văn bản (Text mode), nghĩa lă ta có thể hiện một dòng văn bản, vẽ hình hoặc xóa chỉ nằm gọn trong ViewPort đê định, ta có thể minh họa một cửa sổ ViewPort như hình sau:
Ðể hiểu rõ câch thiết lập một ViewPort, ta hêy xĩt đến câch khai bâo kiểu của ViewPort như sau:
ViewPortType = Record
Clip : Boolean; End;
Trong đó: (x1, y1) , (x2, y2) lần lượt lă góc tọa độ trín bín trâi vă tọa độ góc dưới bín phải, mă chúng phải thỏa tính chất sau:
Clip lă một biến trường có kiểu Boolean mă nó có ý nghĩa như sau:
· Nếu có giâ trị bằng True (hay bằng hằng ClipOn) thì không cho phĩp vẽ bín ngoăi ViewPort. · Nếu có giâ trị bằng False (hay bằng hằng ClipOff) thì cho phĩp vẽ bín ngoăi ViewPort.
a. Thủ tục thiết lập một ViewPort
SetViewPort(x1,y1,x2,y2:integer; Clip:Boolean);
Sau khi thiết lập ViewPort ta sẽ có một hệ tọa độ mới mă góc trín bín trâi của ViewPort sẽ có tọa độ (0,0).
Ví dụ: Như hình vẽ ở trín (giả sử ta chọn Clip bằng hằng ClipOn) thì ta phải thiết lập ViewPort như sau: SetViewPort(300,250,500,350,ClipOn);
* Tọa độ đm dương
Với một số đồ thị của toân học phải có tọa độ đm dương, để vẽ nó ta phải chia măn hình ra lăm 4 phần tương ứng với 4 vùng (I, II, III, IV) đm dương của một hệ trục tọa độ xy. Ðể thực hiện việc năy, ta phải dùng đến cửa sổ ViewPort, với câch thiết lập sao cho tọa độ (0,0) của trục tọa độ xy lă tđm tuyệt đối của măn hình góc trín bín trâi của ViewPort như sau:
- Ðặt: x1= GetmaxX; y1= GetmaxX; x2= GetmaxX; y2= GetmaxX;
- Dùng thủ tục SetViewPort(x1,y1,x2,y2,ClipOff) , với Clip = ClipOff để có thể vẽ ra ngoăi giới hạn của ViewPort.
Ví dụ:
Program Dothi; Uses Crt,Graph; Const ScaleX=20; ScaleY=80; Var mh,mode,x,y,i:integer; Begin InitGraph(mh,mode,'F:\WINAPPS\BP\BGI');
SetViewPort(GetmaxX DIV 2,GetmaxY DIV 2,GetmaxX,GetmaxY,ClipOff); SetColor(blue);
Line(-(GetmaxX DIV 2),0,GetmaxX DIV 2,0); Line(0,-(GetmaxY DIV 2),0,GetmaxY DIV 2); SetTextJustify(CenterText,CenterText);
SetColor(White);
OutTextXY(-GetmaxX DIV 4,-GetmaxX DIV 4,'DO THI HINH SIN '); SetColor(Red);
OutTextXY(GetmaxX DIV 2- 32,2,'Truc x >'); OutTextXY(27,-(GetmaxY DIV 2-5),'^ Truc y'); OutTextXY(0,0,'0,0'); for i:= -400 to 400 do begin x:=Round(2*Pi*i* ScaleX /200); y:=Round(Sin(2*Pi*i/200)* ScaleY); PutPixel(x,y,Yellow); end;
Repeat Until KeyPressed; CloseGraph;