WELCOME TO BLOGGER VQGĐC

THÂN CHÀO QUÝ BẠN
CLICK HERE TO OPEN

Tất cả hình ảnh, những hoạt động cùng cơ sở Định Chuẩn rồi cũng cùng với thời gian rơi vào khoảng không
Nếu còn gì rớt lại chỉ là những tình cảm của những con người đã một thời làm việc chung dưới một mái nhà
mà nay đả tản mác khắp bốn phương trời
Ninh Vũ / Phòng Thí Nghiệm VQGĐC

Monday, October 12, 2026

LÝ DO HỌC VẼ HÌNH BẰNG SVG

 I- LÝ THUYẾT SƠ BỘ.





SVG (Scalable Vector Graphics) là ngôn ngữ ( language ) dùng để vẽ hình hai chiều trong Browser bằng cách viết code của tọa đố x,y trong SVG và được xem như XML

SVG đã thành tiêu chuẩn quốc tế W3 từ năm 1999.

Do đó nếu Browser nào không hổ trợ SVG thì không thể vẽ gì được.

Dung cãch goị là Transform cua SVG và dùng Browser Google rất tốt như hinh vẽ nầy gồm có vòng tròn di chuyển trên 3 cạnh của hình tam gỉac.

Dưới đây có 3 bài hương dần vẽ căn bản cần học trươc.

SVG có những tiện lợi là dễ thực hành, đơn giản, dễ nhớ và chúng ta làm hình vẽ di động rất dể dàng với SMIL ( Synchronized Multimedia Integration Language ) , 

Với SVG,chúng ta có thể vẽ được 3 loại hình là : Vector Graphics Shapes, Images, Text.

 Hình  SVG có thể được thu nhỏ hay phình lớn tuỳ theo kích thước ấn định nhưng hình không bị nhòa như hình bitmap vẽ bằng html 5 Canvas.

Trước khi vẽ chúng ta cần biễt Transform cua SVG là gỉ?

SVG có một đặc điểm rất hay gọi là transform attribute. Dùng đặc điểm nầy chúng ta có thể thay đổi vị trí của tọa độ, thay đổi hình dạ̣ng và thay đổi độ lớn hay độ nhỏ của hình vẽ mà không cần phải vẽ lại hình khác.

        Transform attribute của SVG gồm có.

1-Transform=” translate(x,y)” để chuyển đổi vị trí toạ độ nếu hình vẽ bị che khuất.

  Thí dụ transform=” translate(175, 150)”.Nếu không xác định y thì default sẽ cho 0

2-Transform=” scale (x,y)” để thay đổi hình vẽ lớn hơn hay nhỏ hơn tùy ý của người vẽ.

  Thí dụ transform="scale(0.5)”.Nếu chỉ chọn một con số cho scale mà thôi thì tòan bộ thành phần của hình sẽ theo scale của con số đó.

3-Transform=”rotate(angle,cx,cy)” để xoay chuyển hình vẽ theo góc độ và thay đổi tâm (center ) của hình.

   Thí dụ transform=” rotate(45,100,100)”.Nếu không xác định cx và cy thì default sẽ rotate chung  quanh vị trí đã có ( rotates around the origin)

4-Transform=”skewX(angle)” làm hình nghiên vào trục X.

  Thí dụ transform=”skewX(5)”.Khỏang cách giữa hình và trục là tan của góc ( the distance of skew is the tan of the angle)

5- Transform=”skewY(angle)” làm hình nghiên với trục Y

  Thí dụ transform=” skewY(5)"

II-THỰC TẬP.

Gồm có 3 bài căn bản cần nhớ.

1-Vẽ vòng tròn theo ý muốn rồi cho di chuyển tới lui giữa hai tọa độ.

2-Vè vòng tròn di chuyển trên một quỹ đạo là 3 cạnh của hình tam giac.

3-Vẽ vòng trôn di chuyển trên quỹ đạo là hinh ellipse.  

I–BÀI SỘ 1-

         VẼ MỘT VONG TRÒN THEO Ý MUỐN.

 Trước hết phải ấn đính kích thước đo bằng pixel của khung hình để ve goị là Viewport .

 cx và cy là toạ độ của tâm vòng tron. r là bán kính.

Tô vòng tròn màu đỏ viền vòng tròn màu xanh có bề day của viền theo ý múôn.

  a-Đây là program vẽ một vòng tròn.    

 <svg  xmlns="http://www.w3.org/2000/svg"      width="100%" height="100%">    

 <circle  cx="200" cy="50" r="50" fill="red" stroke="blue" stroke-width ="10">

</circle>

 </svg>

  Hình vòng tròn xuất hiện trong viewport..

 Viewport có hai trục tọa độ x và y là khung sẽ chứa hình vẽ.

Width  nằm ngang trên trục x và Height  nằm thẳng đứng trân trục y nhưng hương xuống dưới trục x.

Muốn y vượt lên trên trục x thi phải viết thêm dấu trừ cạnh chữ y.Thí dụ:  -y

Thí dụ y= ”-160”. vật sẽ vượt lên trên trục x  tới 160 trên trục y. Đơn vị tính trên hai trục là pixel.Tất cả hình vẽ nằm trong viewport có độ lớn tự động được tính bằng pixel .

b- Đây program làm vòng tròn di chuyển tới lui. 

<svg  xmlns="http://www.w3.org/2000/svg"       width="100%" height="100%">     

<g>

<circle  cx="200" cy="50" r="50" fill="red" stroke="blue" stroke-width ="10">

<animateMotion dur="3" from="100,90" to="400,90" repeatCount="indefinite"/>

</animateMotion>

</circle>

</g>

</svg> 

Muốn làm vong trõn của SVG chuyễn đông thi phải dùng phương pháp goị là SMIL ( Synchronized Multimedia Integration Language ).

Phương pháp ầy xuât hiện năm 1998

Hình vẽ giông như chiếc xe. SMIL giống như tài xế.

Viết tái xế trong xe nghĩa là viết chữ animateMotion.  

BÀI SỔ 2-

 VONG TRON CHẠY TRÊN 3 CẠNH  HÌNH TAM GIÁC.

Đây là program.

Vẽ riêng quỹ đaọ hinh tam giác có id=”uphill” như sau.

<svg  xmlns="http://www.w3.org/2000/svg"     

     width="100%" height="100%">     

  <g> // code nầy sẽ xuất hịên hình tam giác.

  <path id="uphill" d="M 80 200,L 160 100,320 250  Z"

  stroke="darkgreen" stroke-width="4" fill="none"/>

  </g>

  //viết riêng tiếp theo dưới code của hình tam giac như sau.

  <g transform="translate(-160,-160)"> //nhớ có dấu trừ.  

  <circle cx="160" cy="155" r="35" stroke="blue" stroke-width "10" fill="red"/>

  <animateMotion dur="10" rotate="auto" repeatCount="indefinite">

  <mpath xlink:href="#uphill"/>// nhớ có dấu #

  </animateMotion>

  </g></svg>

BÀI SỐ 3-

VÒNG TRÒN DI CHUYỂN TRÊN QUỸ ĐẠO ELLIPSE

Đây program lam vòng tròn di chuyển trên ellipse.

      <svg  xmlns="http://www.w3.org/2000/svg"     

         width="100%" height="100%">     

     <g> // phương pháp nầy chỉ dùng vẽ ellipse.

       <path id ="ellipse"

            d="M 225,275

            a 100, 50 0 1,1  0,0.00099"Z

       cx ="200" cy="160" rx = "120" ry = "70"

       stroke="black" stroke-width="5" fill="none"/>

     </g>

     <g transform="translate(x,y)">// không cho tọa độ thi default

     // phai có transform thi quà cầu mới nằm trên ellipse.

     <circle cx="6" cy="3" r="35" stroke="blue" stroke-width ="10" fill="red"/>

     <animateMotion dur="10" rotate="auto" repeatCount="indefinite">

     <mpath xlink:href="#ellipse"/>//phải có mpath trong animate Motion

     </animateMotion>

     </circle>

     </g></svg>

  


Chú ý cách vẽ ellipse như sau.

Phải có chữ  path id. Chữ d="M 225,275  nghĩa là di huyển ngòì bút vẽ tới địa điểm M có tóa độ 225,275 .Rồi di chuyển ngoì bút tới đặc điểm của hình vẽ là  : a 100, 50 0 1,1  0,0.00099" Z .

Chử a nghĩa lả arc ,đường cong. Chư Z nghĩa la closepath.

Khi chọn vẽ theo phương pháp path thi phải có đu nhừng chữ d , a, M , Z. Nễu thiếu hình không xuất hiện.

100, 50 là độ dai của hai trục ellipse.

 Con sô O là góc quay của ellipse.

Hai con số 1, 1 có nghĩa như sau.

Co số 1 đầu tiên lam cho ellipse lớn hơn hoặc bằng 180.

Con số 1 tiểp theo làm cho ellipse ở phần dương, nằm trên trục hoành

Nếu thay bằng con sổ O thi ellipse sẽ ở phần âm ,sẽ ở dưới trục hoành.

Con số 0,0.00099 Z làm cho ellipse khép kín. 

Nếu muốn ellipse không khép kín thì viết  O,OO9 Z họăć 0,1Z hay 0,25Z

------------------

 CẪ̀U CHÚC HỌC NHANH XÂY DỰNG VN HÙNG MẠNH.