Guys Please reply...

--- On Fri, 1/21/11, Mr Rauf <[email protected]> wrote:

From: Mr Rauf <[email protected]>
Subject: [svg-developers] Problem in Resize SVG <rect>  Drag and 
Rotate......with code file
To: [email protected]
Date: Friday, January 21, 2011, 3:25 AM







 



  


    
      
      
      HI All,

i want to implement the functionalty of rectangle very similar like SVG-edit 
where user can rotate the rectangle and also resize it.But i have problem in 
resizing the rectangle ,when the Rectangle is move functionalty is reversed can 
any one help me to solve thiss....Plz help me to solve this problem.....

<----------SVG------------->

?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 version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/";

         x="0px" y="0px" width="612px" height="792px" xml:space="preserve"

onmousedown="ecmascript:top.MouseDown(evt)"

onmousemove="ecmascript:top.MouseMove(evt)"

onmouseup="ecmascript:top.MouseUp(evt)">



<rect id="rectTemplate" x="0" y="0" stroke="blue" width="100" height="30" 
transform="translate(20,100)"/>



</svg>

<-----------HTML------------->

<%--

    Document   : grouping

    Created on : 07-Dec-2010, 12:05:35

    Author     : AbdulRauf

--%>



<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

   "http://www.w3.org/TR/html4/loose.dtd";>



<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>JSP Page</title>

<!--        <script type="text/javascript" src="CPolyline.js">



</script>-->

    </head>

    <body>

        <object id="oo" data="rect.svg" style="position:fixed;width: 
800px;height:800px;bottom:-100px;right: 375px;">



</object>

       path: <input type="text" id="path" >

     <input type="button" value="Rotate" onclick="Rotate()">

     



<script type="text/javascript">

            var ob=document.getElementById("oo")



var svgDoc=null;

            var svgRoot=null;

            var ObjArray = new Array();

            var GroupArray = new Array();

            var SelectRect = null;

            var OrigX = 0;

            var OrigY = 0;

            var bInDrawRect = false;

            var bMoveObjects = false;

            var ZoomI =false;

            var ZoomOu = false;

            var zoomin=false;

            var MyGroupObjectsObj = null;

            var svgNS = "http://www.w3.org/2000/svg";;

            var dragTarget = null;

            var rectTemplate = null;

            var grabPoint = null;

            var clientPoint = null;

            var rectX = null;

            var rectY = null;

            var rectWidth = null;

            var rectHeight = null;



var resizingLeft = false;

            var resizingRight = false;

            var resizingTop = false;

            var resizingBottom = false;

            var main=null

            var toolbar=null;

            var drawingArea=null;



ob.addEventListener("load", function(){



svgDoc=ob.contentDocument;

                svgRoot=svgDoc.documentElement;

                MyGroupObjectsObj = svgDoc.getElementById("SelectGroup");



grabPoint = svgRoot.createSVGPoint();

      clientPoint = svgRoot.createSVGPoint();



rectTemplate = svgDoc.getElementById('rectTemplate')

      



}, false)

var rotate=0

function Rotate(){



rotate+=10

       var c=rectTemplate.getAttribute("transform");

       //var widt=Number(rectTemplate.getAttribute("width"))/2;

       //var hie=Number(rectTemplate.getAttribute("height"))/2

      // var tran=c.match(/[\d\.]+/g);

       var newxpo=255;

       var newypo=255;



rectTemplate.setAttribute("transform", "rotate("+rotate+" "+ 256+" "+256+")")



}



function MouseDown(evt)

{

 

  var targetElement = evt.target;

      var checkForResizeAttempt = false;

      

        if (targetElement == rectTemplate)

        {

         dragTarget = targetElement;

         checkForResizeAttempt = true;

        }

       

        var transMatrix = dragTarget.getCTM();

        grabPoint.x = evt.clientX - Number(transMatrix.e);

        grabPoint.y = evt.clientY - Number(transMatrix.f);



if (window.console) console.log(grabPoint.x + " " + grabPoint.y);

        if (window.console) console.log(evt.clientX + " " + evt.clientY);



if (checkForResizeAttempt)

        {

          clientPoint.x = evt.clientX;

          clientPoint.y = evt.clientY;

          rectX = Number(dragTarget.getAttributeNS(null, "x"));

          rectY = Number(dragTarget.getAttributeNS(null, "y"));

          rectWidth = Number(dragTarget.getAttributeNS(null, "width"));

          rectHeight = Number(dragTarget.getAttributeNS(null, "height"));



if ((grabPoint.x - rectX) < 10)

          {

            resizingLeft = true;

          }

          else if (((rectX + rectWidth) - grabPoint.x) < 10)

          {

            resizingRight = true;

          }

          else if ((grabPoint.y - rectY) < 10)

          {

            resizingTop = true;

          }

          else if (((rectY + rectHeight)- grabPoint.y) < 10)

          {

            resizingBottom = true;

          }

          if (resizingLeft || resizingRight || resizingTop || resizingBottom)

          {

            dragTarget.setAttributeNS(null,"stroke","green");

          }

          else

          {

            dragTarget.setAttributeNS(null,"stroke","black");

          }

        }

      }



function MouseMove(evt)

{

evt.stopPropagation();

 if (dragTarget == null)

      {

        return;

      }

      if (resizingLeft)

      {

        if (window.console) console.log(evt.clientX + " " + evt.clientY);

        deltaX = (clientPoint.x - evt.clientX);

        if (window.console) console.log("deltaX = " + deltaX);

        dragTarget.setAttributeNS(null,"width",rectWidth + deltaX);

        dragTarget.setAttributeNS(null,"x",rectX - deltaX);

      }

      else if (resizingRight)

      {

        deltaX = (clientPoint.x - evt.clientX);

        if (window.console) console.log("rectWidth = " + rectWidth + " deltaX = 
" + deltaX);

        dragTarget.setAttributeNS(null,"width",rectWidth - deltaX);



}

      else if (resizingTop)

      {

        if (window.console) console.log(evt.clientX + " " + evt.clientY);

        deltaY = (clientPoint.y - evt.clientY);

        if (window.console) console.log("deltaY = " + deltaY);

        dragTarget.setAttributeNS(null,"height",rectHeight + deltaY);

        dragTarget.setAttributeNS(null,"y",rectY - deltaY);

      }

      else if (resizingBottom)

      {

        deltaY = (clientPoint.y - evt.clientY);

        dragTarget.setAttributeNS(null,"height",rectHeight - deltaY);

      }

      else

      {

        newX = evt.clientX-grabPoint.x;

        newY = evt.clientY-grabPoint.y;



dragTarget.setAttributeNS(null,'transform','translate(' + newX + ',' + newY + 
')');

      }



}

function MouseUp(evt)

{

  evt.stopPropagation();

   if (dragTarget == null)

      {

        return;

      }

      resizingLeft = false;

      resizingRight = false;

      resizingTop = false;

      resizingBottom = false;

      var transMatrix = dragTarget.getCTM();

      var rectX = dragTarget.getAttributeNS(null,'x');

      dragTarget.setAttributeNS(null,"stroke","blue");



dragTarget = null;



}



</script>

    </body>

</html>





    
     

    
    


 



  






      

[Non-text portions of this message have been removed]



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

-----
To unsubscribe send a message to: [email protected]
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my 
membership"
----Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/svg-developers/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/svg-developers/join
    (Yahoo! ID required)

<*> To change settings via email:
    [email protected] 
    [email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to