'; } return $outh; //explode('.', $outh)[0]; } function animateg($inthing) { global $animatemode, $animatefrom, $animateto, $animatepath, $animateothers; $z=0; $extras=""; $toend="/>"; $outthing=$inthing; if ($animatemode == "" && ($animatepath != "" || $animateothers != "")) { $animatemode="path"; $animsfrom=$animatepath; } else if (($animatepath != "" || $animateothers != "")) { $animatemode.=";path"; $animsfrom.=";" . $animatepath; $animsto.=";"; } if ($animatemode != "") { $anims=explode(";", $animatemode); $animsfrom=explode(";", $animatefrom); $animsto=explode(";", $animateto); for ($ir=0; $ir'; } $extras.=$animateothers; } else { $extras=''; } if (strpos($inthing, "") !== false) { $outthing=str_replace("", $extras . "", $outthing); } else if (strpos($inthing, "") !== false) { $rest=explode("", $inthing)[1]; $toend="", explode(" ", substr($rest,1))[0])[0] . ">"; if (strpos($rest, "/>") !== false) { $outthing=str_replace($rest, explode("/>", $rest)[0] . ">" . $extras . $toend, $outthing); } else { $outthing=str_replace("", "" . $extras, $outthing); } } else if (strpos(substr($inthing,$z), "/>") !== false) { $toend="", explode(" ", substr($inthing,1))[0])[0] . ">"; $outthing=str_replace("/>", ">" . $extras . $toend, $outthing); } else if (strpos($inthing, "") !== false) { $outthing=str_replace("", $extras . "", $outthing); } } } } return $outthing; } function animateperhaps($inmode, $inthing) { global $animatemode, $animatefrom, $animateto, $animatepath, $animateothers; $delim=""; $indelim=""; if ($animatemode != "") { $delim=";"; } if (strpos($inthing, ".") !== false) { $ofinterest="." . explode(".", $inthing)[1]; if ($inmode == "rotate") { if (strlen(trim( explode(",", $ofinterest)[0] )) == 3 && strpos($ofinterest, ".0") !== false) { $animatemode=$animatemode; } else { $animatemode.=$delim . $inmode; $animateto.=$delim . trim(explode(",", substr($ofinterest,1))[0]); $animatefrom.=$delim . str_replace("." . trim(explode(",", substr($ofinterest,1))[0]), "", $inthing); //return ""; } } else { //if (strpos($inthing, ",") !== false) { $animatemode.=$delim . $inmode; $ofs=explode(",", $inthing); $animateto.=$delim . explode(".", $ofs[0])[1]; $animatefrom.=$delim . str_replace("." . explode(".", $ofs[0])[1], "", $ofs[0]); $indelim=","; for ($j=1; $j') { $interesting=false; $xinad.=substr($jinad,$iu,1); $bad=false; } else if ($interesting && strpos(('~' . substr($jinad,$iu)),'~opacity') !== false) { $interesting=false; $xinad.=substr($jinad,$iu,1); $bad=false; } else if ($interesting && substr($jinad,$iu,1) == '.') { $bad=true; } else if ($interesting && $bad && substr($jinad,$iu,1) >= '0' && substr($jinad,$iu,1) <= '9') { $bad=$bad; } else if ($interesting && $bad && substr($jinad,$iu,1) == '%') { $bad=$bad; } else if ($interesting) { $bad=false; $xinad.=substr($jinad,$iu,1); } else { $bad=false; $xinad.=substr($jinad,$iu,1); } } return $xinad; } return $jinad; } function server_remote_addr() { $rma = $_SERVER['REMOTE_ADDR']; $ua = strtolower($_SERVER['HTTP_USER_AGENT']); // you can add different browsers with the same way .. if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua)) $rma = '000000'.$rma; elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua)) $rma = '00000'.$rma; elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua)) $rma = '0000'.$rma; elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua)) $rma = '000'.$rma; elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua)) $rma = '00'.$rma; elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua)) $rma = '0'.$rma; return $rma; } function stuffaround($aniname) { $istuff = ""; $huh="?huh=" . rand(0,32674); if ($aniname != "") { $istuff='  '; } return $istuff; } function fmc($im, $incol) { $coltoget=str_replace(" ", "", str_replace(" ", "", strtolower(urldecode($incol)))); if (file_exists("ideasfrom.txt")) { $vers=strtolower(file_get_contents("ideasfrom.txt")); //$versus=explode("", $vers); //file_put_contents("ideasfrom.yyy", " ?in? " . $versus); if (strpos($vers, "") !== false) { //file_put_contents("ideasfrom.zzz", $_GET['findmecolour']); $rest=explode("", $vers); //us[1]); $andthen=explode("", $rest[1]); $r_g_b=explode(" ", str_replace("", $vers); for ($ik=2; $ik<(-1 + sizeof($codetds)); $ik+=2) { $names=explode("", str_replace("",$codetds[0 + $ik])); $r_g_b=explode(" ", str_replace("
" . $coltoget . "" . $coltoget . "" . $coltoget . "", "", str_replace("", "", str_replace("\n", "", $andthen[0])))); $xris=strval(hexdec($r_g_b[0])); $xgis=strval(hexdec($r_g_b[1])); $xbis=strval(hexdec($r_g_b[2])); //file_put_contents("ideasfrom.www", $xris . " " . $xgis . " " . $xbis); return imagecolorallocate($im, $xris, $xgis, $xbis); } } return null; } function arrdo() { $arrb = "\n var arrb=['pink','#ffc0cb'"; if (file_exists("ideasfrom.txt")) { $vers=strtolower(file_get_contents("ideasfrom.txt")); $codetds=explode("","", "", str_replace("", "", str_replace("\n", "",$codetds[$ik])))); $arrb .= str_replace("\n","","," . "'" . $names[-3 + sizeof($names)] . "','#" . substr(("0" . $r_g_b[0]), (strlen($r_g_b[0]) - 1)) . substr(("0" . $r_g_b[1]), (strlen($r_g_b[1]) - 1)) . substr(("0" . $r_g_b[2]), (strlen($r_g_b[2]) - 1))) . "'\n"; } } $arrb .= "]; \n"; return $arrb; } function reorderar($gin) { global $torder, $translate, $scale; $outgin=$gin; $outg=""; if ($torder != "" && strpos($gin, "transform=") !== false) { $outg=explode("transform=", $gin)[0] . 'transform='; $bits=explode(",",str_replace(($torder . "~"), ",~", $torder)); if (sizeof($bits) > 1) { $subgin=""; $dsubgin=""; for ($ii=0; $ii", explode('transform=', $gin)[1])[0]; $outgin=str_replace($outg, $subgin, $gin); } } return $outgin; } function saveit($drawwhat) { global $hp1,$p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8,$p9,$p10,$p11,$p12,$p13,$p14,$p15,$p16,$p17,$p18,$p19,$p20,$prepre,$previous,$gbefore,$gafter,$rotate,$rotateappend,$scale,$translate,$matrix,$skewx,$skewy,$torder,$fld,$animatemode,$animateto,$animatefrom,$animatepath,$animateothers; $imgname=""; //file_put_contents("ideasfrom.zzz", "0 " . $drawwhat); if ($drawwhat == "Text") { $imgname="animage_" . str_replace(".", "_", str_replace(":", "_", server_remote_addr())) . ".jpg"; //if (file_exists($imgname)) unlink($imgname); $iois=imagecreatetruecolor($p1, $p1); $ourp5=fmc($iois, $p4); //$ourp5=imagecolorallocate($iois, $ris, $bis, $gis); // vs red imagestring($iois, 3, $p1, $p2, $p3, $p4); imagejpeg($iois, $imgname); imagedestroy($iois); return $imgname; } else if ($drawwhat == "Circle") { $imgname="animage_" . str_replace(".", "_", str_replace(":", "_", server_remote_addr())) . ".jpg"; //if (file_exists($imgname)) unlink($imgname); $iois=imagecreatetruecolor($p1, $p1); $ourp5=fmc($iois, $p5); //$ourp5=imagecolorallocate($iois, $ris, $bis, $gis); // vs red imagefilledarc($iois, $p2, $p3, $p4, $p4, 0, 360, $ourp5, IMG_ARC_PIE); imagejpeg($iois, $imgname); imagedestroy($iois); return $imgname; } else if ($drawwhat == "Rectangle") { $imgname="animage_" . str_replace(".", "_", str_replace(":", "_", server_remote_addr())) . ".jpg"; //if (file_exists($imgname)) unlink($imgname); $iois=imagecreatetruecolor(max(max($p2,$p3),$p1), max(max($p2,$p3),$p1)); $ourp5=fmc($iois, $p4); //$ourp5=imagecolorallocate($iois, $ris, $bis, $gis); // vs red imagefilledrectangle($iois, 0, 0, ($p2 + 0), ($p3 + 0), $ourp5); imagejpeg($iois, $imgname); imagedestroy($iois); return $imgname; } else if ($drawwhat == "Line") { $imgname="animage_" . str_replace(".", "_", str_replace(":", "_", server_remote_addr())) . ".jpg"; //if (file_exists($imgname)) unlink($imgname); $iois=imagecreatetruecolor(max(max($p2,$p4),$p1), max(max($p3,$p5),$p1)); $ourp5=fmc($iois, $p6); //$ourp5=imagecolorallocate($iois, $ris, $bis, $gis); // vs red imageline($iois, $p2, $p3, $p4, $p5, $ourp5); imagejpeg($iois, $imgname); imagedestroy($iois); return $imgname; } else if ($drawwhat == "Ellipse") { $imgname="animage_" . str_replace(".", "_", str_replace(":", "_", server_remote_addr())) . ".jpg"; //if (file_exists($imgname)) unlink($imgname); $iois=imagecreatetruecolor(max($p4,$p1), max($p5,$p1)); $ourp5=fmc($iois, $p6); //$ourp5=imagecolorallocate($iois, $ris, $bis, $gis); // vs red imagefilledellipse($iois, $p2, $p3, $p4, $p5, $ourp5); imagejpeg($iois, $imgname); imagedestroy($iois); return $imgname; } else if ($drawwhat == "Polygon") { //file_put_contents("ideasfrom.zzz", "1"); $imgname="animage_" . str_replace(".", "_", str_replace(":", "_", server_remote_addr())) . ".jpg"; //file_put_contents("ideasfrom.zzz", "2"); if (1 == 1) { $iois=imagecreatetruecolor(($p1 * 2), $p1); //file_put_contents("ideasfrom.zzz", "3"); $ourp5=fmc($iois, $p3); //file_put_contents("ideasfrom.zzz", "4"); //eval(" $arr2=array(" . str_replace(" ", ",", urldecode($p2)) . ");"); $arr2=explode(",", str_replace(" ", ",", urldecode($p2))); //file_put_contents("ideasfrom.zzz", "5"); imagefilledpolygon($iois, $arr2, (sizeof($arr2) / 2), $ourp5); //file_put_contents("ideasfrom.zzz", "6"); imagejpeg($iois, $imgname); //file_put_contents("ideasfrom.zzz", "7"); imagedestroy($iois); //file_put_contents("ideasfrom.zzz", "8"); } return $imgname; } return $imgname; } if ($what == "") { ?> SVG Tutorial - RJM Programming - July, 2014 and December, 2016 ... thanks to http://www.tutorialspoint.com/html5/html5_svg.htm

HTML5 SVG Tutorial

(Optional geometry tracing game as well)




                                    

'; if ($mode == "POST") { $p1 = $_POST['height']; // 200 $hp1=' height="' . $p1 . '"'; $fld="x"; $p2 = oururldecode($_POST['cx']); // 50 $fld="y"; $p3 = oururldecode($_POST['cy']); // 50 $p4 = str_replace("+"," ",urldecode($_POST['text'])); // 50 $p5 = $_POST['fill']; // red if (isset($_POST['submitsave'])) $iurl=saveit($what); } else { $p1 = $_GET['height']; // 200 $hp1=' height="' . $p1 . '"'; $fld="x"; $p2 = oururldecode($_GET['cx']); // 50 $fld="y"; $p3 = oururldecode($_GET['cy']); // 50 $p4 = str_replace("+"," ",urldecode($_GET['text'])); // 50 $p5 = $_GET['fill']; // red if (isset($_POST['submitsave'])) $iurl=saveit($what); } $hp1=""; $posttranslate=""; if ($matrix != "") { $posttranslate.=" matrix(" . $matrix . ")"; } if ($skewx != "") { $posttranslate.=" skewX(" . $skewx . ")"; } if ($skewy != "") { $posttranslate.=" skewY(" . $skewy . ")"; } if ($scale != "") { $posttranslate.=" scale(" . $scale . ")"; } if ($previous != "") { if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=$prepre . '' . $p4 . ''; ?> SVG

HTML5 SVG Text

' . reorderar($gbefore) . animateg(notprevious($previous . $prepre . '' . $p4 . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Circle

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Rectangle

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Line

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Ellipse

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Polygon

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Path

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Polyline

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?
'; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $gbefore=''; $gafter=""; } else { $gbefore=""; $gafter=""; } $hp1=""; } else if ($translate != "" && $rotate != "" && strpos($translate, ".") === false && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($translate != "" && strpos($translate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($rotate != "" && strpos($rotate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } else if ($posttranslate != "" && strpos($posttranslate, ".") === false) { $hp1=""; $gbefore=''; $gafter=""; } $previous.=''; ?> SVG

HTML5 SVG Gradient Ellipse

' . reorderar($gbefore) . animateg(notprevious($previous . '') . $gafter) . ''; ?>
Another SVG go?  Fancy a tracing accuracy test, below?  Fancy a YUI based tracing accuracy test, way below?



Another SVG go?  Fancy a tracing accuracy test, above?