Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <html>
  2.     <head>
  3.         <title>Analoge Uhr in SVG</title>
  4.           <script>
  5.              
  6.               var svg_open = "<?xml version='1.0' ?><svg viewBox='0 0 300 300' width='300' height='300' xmlns='http://www.w3.org/2000/svg'>";
  7.               var svg_stat = ""; //Ziffernblatt
  8.               var svg_zeig = ""; //Zeiger
  9.               var svg_end  = "</svg>";
  10.                            
  11.               function zifferblatt()
  12.                 {
  13.                
  14.                     svg_stat="<rect x='0' y='0' width='300' height='300' fill='#00ffff' />";
  15.                     svg_stat=svg_stat+"<circle cx='150' cy='150' r='140' fill='#ffffff' />";
  16.                        
  17.                       var step= ( 3.14159 * 2 ) / 12;//2Pi durch 12
  18.                       var cx = 0 ;
  19.                       var cy = 0 ;
  20.                       var zz ="";
  21.                       var svg_point ="";
  22.                      
  23.                         for (var i=0; i < 12; i++)// laufe von 0 bis 11 (12 Schritte)
  24.                        
  25.                         {
  26.                             cx=145 + Math.sin(i*step)*130;//x-pos auf Kreisbogen
  27.                             cy=155 - Math.cos(i*step)*130;//y-pos auf Kreisbogen
  28.                               //svg_point="<circle cx='"+cx+"' cy='"+cy+"' r='5' fill='#000000'/>"
  29.                              
  30.                              
  31.                               zz=i;
  32.                                 if(i==0){zz=12;}
  33.                                    svg_point="<text x='"+cx+"' y='"+cy+"' fill='#0000ff'>"+zz+"</text>";
  34.                              
  35.                               svg_stat=svg_stat+svg_point;
  36.                         }
  37.                        
  38.                 }
  39.                
  40.               function zeiger()
  41.                   {
  42.                     var zeit=new Date();
  43.                       var sekunde = zeit.getSeconds();
  44.                       var minute  = zeit.getMinutes();
  45.                       var stunde  = zeit.getHours();
  46.                         var step12  = ( 3.14159 * 2 ) / 12;//2Pi durch 12
  47.                         var step60  = ( 3.14159 * 2 ) / 60;//2Pi durch 60
  48.                         var px = 0;
  49.                         var py = 0;
  50.                        
  51.                         px = 150 + Math.sin(sekunde*step60)*130;
  52.                         py = 150 - Math.cos(sekunde*step60)*130;
  53.                        
  54.                         svg_zeig="<path d='M 150 150 L "+px+" "+py+"' stroke-width='1' stroke='#ff0000' />";
  55.                        
  56.                         px = 150 + Math.sin((minute+sekunde/60)*step60)*100;
  57.                         py = 150 - Math.cos((minute+sekunde/60)*step60)*100;
  58.                        
  59.                         svg_zeig=svg_zeig+"<path d='M 150 150 L "+px+" "+py+"' stroke-width='3' stroke='#0000ff' />";
  60.                        
  61.                         px = 150 + Math.sin((stunde+minute/60)*step12)*80;
  62.                         py = 150 - Math.cos((stunde+minute/60)*step12)*80;
  63.                        
  64.                         svg_zeig=svg_zeig+"<path d='M 150 150 L "+px+" "+py+"' stroke-width='5' stroke='#ffffff' />";
  65.                        
  66.                         svg_zeig=svg_zeig+"<circle cx='150' cy='150' r='15' fill='#0000ff'/>";
  67.                         svg_zeig=svg_zeig+"<circle cx='150' cy='150' r='12' fill='#ffffff'/>";              
  68.                   }
  69.                
  70.                
  71.                
  72.                            
  73.               function zeige_uhr()
  74.                 {
  75.                     zeiger();
  76.                     var svg=svg_open+svg_stat+svg_zeig+svg_end;// SVG zusammensetzen
  77.                    
  78.                     svg=btoa (svg);//fertiges SVG nach base 64 codieren
  79.                     document.getElementById('uhr').src="data:image/svg+xml;base64," +svg;//SVG an image übergeben
  80.                    
  81.                 }  
  82.              
  83.              
  84.              
  85.           </script>
  86.       <body>
  87.          <hr>Analoge UHR in SVG<hr>
  88.             <img src='' id='uhr' width='300' height='300'>
  89.                 <script>
  90.                       zifferblatt();
  91.                       zeige_uhr();
  92.                       window.setInterval("zeige_uhr()",500);
  93.                 </script>
  94.            
  95.                
  96.       </body>
  97.     </head>
  98.  
  99. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement