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

Friday, October 14, 2016

DÙNG SVG VẼ HỆ THỐNG RADAR CHẬN ĐẠN ĐỊCH

SVG VẼ RADAR PHÒNG THỦ CHỐNG ĐẠN ĐỊCH
USING SVG TO DRAW RADAR SYSTEM AGAINST ENEMIES’ BULLETS
<!DOCTYPE html>
  <html xmlns="http://www.w3.org/1999/xhtml">
  <svg  xmlns="http://www.w3.org/2000/svg" width="5000"  height="3000">       
 <g id="bullet" transform="translate(250,150)">
     <circle cx="0" cy="30" r="15" stroke="green" fill="blue">
     <animate attributeName="cx" dur="2" from="290" to ="50" begin="B.click" end="S.click"="indefinite"/>        
     </circle></g> // enemy’s bullet 
 <g id="radar" transform="translate(175,150)">
     <ellipse cx="0" cy="0" rx="40" ry="35" stroke="red" fill="yellow">    
     <animateTransform  attributeName="transform" type="rotate"
      dur="1" from="0" to ="360" repeatCount="indefinite"/>
     </ellipse> //máy phát sóng  
     
     <line x1="0" y1="0" x2="150" y2="0" stroke="red" stroke-width="2">
     <animateTransform  attributeName="transform" type="rotate"
       dur="2" from="0" to ="360" begin="B.click" end="S.click"   repeatCount="indefinite"/>
     </line> // radar wave    
     <g id="B">
     <text x="-40" y="10" font-size="20">START</g>
     <g id="S">
     <text x="35" y="15" font-size="20">STOP</g>                
    
     // rocket chận phi đạn của địch
     <image x= "45" y="100" xlink:href="rocket1.gif" width="45" height="40">
     <animateMotion dur="1" from ="45,100" to ="50,-80" begin="B.click" end="S.click" repeatCount ="indefinite"/> // lấy hình đã vẽ tồn trử trong document
     </image>
</g>      
</g>
</svg>





Chi Chú Hướng Dẫn.
SVG là chữ viết tắt của Scalable Vector Graphic dùng để vẽ Vector Images trong cách viết của XML cho nên không cần viết thêm tags của HTML.
SVG xuất hiện vào năm 1999 do công trình phát minh của Adobe, Apple và IBM.
Vẽ hình bằng cách chúng ta tự chọn tọa độ x,y .SVG sẽ nối các tọa độ thành hình vẽ.
Hình vẽ theo SVG  có High Resolution, có thể thu nhỏ hay giản rộng.
Chúng ta có thể làm hình SVG chuyển động theo ý muốn.
Chữ  d nghĩa là bắt đầu vẽ (depart)
Chữ  M nghĩa là move to.
Chữ  C nghĩa là curve.
Chữ  L nghĩa là line.
Chữ  A vẽ  elliptical Arc
Chữ  H vẽ horizontal line.
Chư  V vẽ vertical line.
Chữ  S vẽ smooth curve.
Chữ  Q vẽ quadratic Bezier curve
Chư  Z nghĩa là close path, nghĩa là đóng hình vẽ

Trước khi bắt đâù vẽ cần phải có declaration như sau.
Nếu thiếu thì hình không hiện ra.
<!DOCTYPE html>
  <html xmlns="http://www.w3.org/1999/xhtml">
  <svg  xmlns="http://www.w3.org/2000/svg" width="5000" height="3000"> 
                               HOẶC : 
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox = "0 0 100 100" version = "1.1">
Mỗi hình vẽ phải xếp riêng trong một cặp tag <g>…</g>.
Những hình vẽ chúng ta muốn xếp trong cùng một nhóm thì chỉ cần một cặp tag <g>…</g> cho nhóm đó mà thôi.
Mỗi nhóm cần có một ID để dễ phân biệt.
Xem bài viết trên,chúng ta thấy có 2 nhóm có ID khác nhau.
Trong bài nầy chử xử dụng hình đường thẳng goị là line và hình vòng tròn gọi là circle mà thôi.

SAU KHI VẼ XONG ,MUỐN HÌNH NÀO CHUYỂN ĐỘNG THÌ CẦN PHẢI HỌC BÀI SVG ANIMATION.
Trong trò chơi nầy chúng ta xử dụng  :

1-animate attributeName cho chuyển động theo chiều ngang hay dọc của một element.
Thí dụ attributeName=”width”, attributeName=”top”, attributeName=”x”
Có thể dùng animate attributeName để làm chuyển động nhiều elements cùng một lúc.
Thí dụ. animate attributeName=”x”, animate attributeName=”r”, animate attributeName=”cx”,

2-animateTransform  attributeName="transform"  cho chuyển động xê dịch tại chỗ và phải có kèm thêm chữ type=”rotate”.

3-animateMotion cho chuyển động đi khắp nơi, áp dụng cho hình vẽ path theo SVG hoặc hình vẽ thông thường hoặc hình chụp bằng máy ảnh.

Thursday, October 6, 2016

ÁP DỤNG SVG VẼ 3 CON CÁ DI CHUYỂN TRONG HỒ

<!DOCTYPE html>
  <html xmlns="http://www.w3.org/1999/xhtml">
  <svg  xmlns="http://www.w3.org/2000/svg" width="5000" height="3000">    
  <g id="container"> // Hồ cá
<rect x="5" y="15" width="400" height="360" stroke="blue" fill="aqua"/>
  
<g id="rong1" transform=translate(92,80) rotate(-5)">
  <path d="M 20 200,C 20 50,30 15,30 25 Z" stroke="lightgreen" fill="green"/></g> //  Rong rêu 1

<g id="rong2" transform="translate(60,60) scale(0.7)">
  <path d="M 100 300,C 100 50,140 15,130 5 Z"  stroke="lightgreen" fill="green"/></g> //  Rong rêu 2

<g id="rong3" transform="translate(90,110) scale(0.5) rotate(4)">
  <path d="M 100 300,C 100 50,140 15,130 5 Z" stroke="lightgreen" fill="green" /></g> //  Rong rêu 3

<g id="bubble1">
   <circle cx="350" cy="50" r="15" stroke="green" fill="white">
       <animate attributeName="cy" dur="2" from="290" to ="50" repeatCount="indefinite"/> // Bong bóng nước 1
   </animate></circle>

<text font-family="brush script MT" font-size="15px" stroke="green" x="260" y="300">HeDuong-2012</text></g>

<g id="bubble2">
   <circle cx="320" cy="200" r="10" stroke="green" fill="white">
       <animate attributeName="cy" dur="5" from="290" to ="50" repeatCount="indefinite" /> // Bong bóng nước 2
   </animate></circle></g>

<g id="fish1" transform="translate(10,190) scale(0.6)"> //red fish thu nho 0.6
               <path d="M 200 160,C 250 200,350 120,200 160,
               L 200 160,180 170,
               L 200 160,175 150,
               C 175 150,185 160,180 170 Z" stroke="grey" stroke-width="2" fill="red"/>
              <circle cx="260" cy="155" r="3" stroke="black" fill="blue"/>
     <animateMotion begin="2" dur="10" from="10,20" to="200,-200" repeatCount="indefinite"/>
              </animateMotion></g>  

<g id="fish2" transform="translate(-15,-20) scale(0.7)">// gold fish thu nho 0.7
               <path d="M 200 160,C 250 200,350 120,200 160,
               L 200 160,180 170,
               L 200 160,175 150,
               C 175 150,185 160,180 170 Z" stroke="grey" stroke-width="2" fill="gold"/>
               <circle cx="260" cy="155" r="4" stroke="gold" fill="blue"/>
                <animateMotion begin="5" dur="4" from="0,0" to="135,170" repeatCount="indefinite"/>
               </animateMotion></g>  

<g id="fish3" transform="translate(20,190) scale(0.5)">//grey fish thu nho 0.5
               <path d="M 200 160,C 230 200,300 120,200 160,
               L 200 160,180 170,
               L 200 160,175 150,
               C 175 150,185 160,180 170 Z" stroke="brown" stroke-width="2" fill="grey"/>
              <circle cx="240" cy="155" r="3" stroke="black" fill="blue"/>
                <animateMotion begin="10" dur="20" from="10,15" to="100,-200" repeatcount="indefinite"/>
                </animateMotion></g>   

</rect> </g></svg> 
Đây là hình vẽ theo SVG.
Chi Chú Hướng Dẫn.
SVG là chữ viết tắt của Scalable Vector Graphic dùng để vẽ Vector Images trong cách viết của XML cho nên không cần viết thêm tags của HTML.
SVG xuất hiện vào năm 1999 do công trình phát minh của Adobe, Apple và IBM.
Vẽ hình bằng cách chúng ta tự chọn tọa độ x,y .SVG sẽ nối các tọa độ thành hình vẽ.
Hình vẽ theo SVG  có High Resolution, có thể thu nhỏ hay giản rộng.
Chúng ta có thể làm hình SVG chuyển động theo ý muốn.

Chữ  d nghĩa là bắt đầu vẽ (depart)
Chữ  M nghĩa là move to.
Chữ  C nghĩa là curve.
Chữ  L nghĩa là line.
Chữ  A vẽ  elliptical Arc
Chữ  H vẽ horizontal line.
Chư  V vẽ vertical line.
Chữ  S vẽ smooth curve.
Chữ  Q vẽ quadratic Bezier curve
Chư  Z nghĩa là close path, nghĩa là đóng hình vẽ

Trước khi bắt đâù vẽ cần phải có declaration như sau.
NẾU THIẾU THÌ HÌNH KHÔNG XUẤT HỊÊN.
<!DOCTYPE html>
  <html xmlns="http://www.w3.org/1999/xhtml">
  <svg  xmlns="http://www.w3.org/2000/svg" width="5000" height="3000"> 
                               HOẶC : 
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox = "0 0 100 100" version = "1.1">

Mỗi hình vẽ phải xếp riêng trong một cặp tag <g>…</g>.
Những hình vẽ chúng ta muốn xếp trong cùng một nhóm thì chỉ cần một cặp tag <g>…</g> cho nhóm đó mà thôi.
Mỗi nhóm cần có một ID để dễ phân biệt.
Xem bài viết trên,chúng ta thấy có 9 nhóm có ID khác nhau.
SAU KHI VẼ XONG ,MUỐN HÌNH NÀO PHẢI CHUYỂN ĐỘNG THÌ CẦN PHẠI HỌC BÀI SVG ANIMATION