Exemple #1
0
        public ClsPoint GetScrnSize()
        {
            ClsPoint retcpt;

            retcpt   = new ClsPoint();
            retcpt.x = m_dMMWorkXSize;
            retcpt.y = m_dMMWorkYSize;
            return(retcpt);
        }
Exemple #2
0
        public ClsPoint TrnsMMToRltv(ClsPoint cpt)
        {
            double   mmx, mmy;
            double   rltvx, rltvy;
            ClsPoint retcpt;

            mmx      = cpt.x;
            mmy      = cpt.y;
            rltvx    = ((mmx) + m_dMMCntrX) / m_dXTime;
            rltvy    = ((mmy) + m_dMMCntrY) / m_dYTime;
            rltvx    = rltvx - m_dRltvXTop;
            rltvy    = rltvy - m_dRltvYTop;
            retcpt   = new ClsPoint();
            retcpt.x = rltvx + m_dRltvMoveX;
            retcpt.y = rltvy + m_dRltvMoveY;
            return(retcpt);
        }
Exemple #3
0
        public PathFigure GetCopyPF()
        {
            ObjFigu       objFigu;
            ClsPoint      cp;
            int           max, idx;
            LineSegment   lnseg;
            BezierSegment bzseg;

            PathFigure pf;

            pf            = new PathFigure();
            objFigu       = m_lstObjFigu[0];
            cp            = new ClsPoint();
            cp.x          = objFigu.x1; cp.y = objFigu.y1;
            cp            = m_scrnEnv.TrnsMMToRltv(cp);
            pf.StartPoint = new Point(cp.x, cp.y);
            max           = m_lstObjFigu.Count;
            for (idx = 0; idx < max; idx++)
            {
                objFigu = m_lstObjFigu[idx];
                if (objFigu.kind == Constants.LINEKIND)
                {
                    lnseg       = new LineSegment();
                    cp.x        = objFigu.x4; cp.y = objFigu.y4;
                    cp          = m_scrnEnv.TrnsMMToRltv(cp);
                    lnseg.Point = new Point(cp.x, cp.y);
                    pf.Segments.Add(lnseg);
                }
                else
                {
                    bzseg        = new BezierSegment();
                    cp.x         = objFigu.x2; cp.y = objFigu.y2;
                    cp           = m_scrnEnv.TrnsMMToRltv(cp);
                    bzseg.Point1 = new Point(cp.x, cp.y);
                    cp.x         = objFigu.x3; cp.y = objFigu.y3;
                    cp           = m_scrnEnv.TrnsMMToRltv(cp);
                    bzseg.Point2 = new Point(cp.x, cp.y);
                    cp.x         = objFigu.x4; cp.y = objFigu.y4;
                    cp           = m_scrnEnv.TrnsMMToRltv(cp);
                    bzseg.Point3 = new Point(cp.x, cp.y);
                    pf.Segments.Add(bzseg);
                }
            }
            return(pf);
        }
Exemple #4
0
        public ClsPoint TrnsRltvToMM(ClsPoint cpt)
        {
            double   rltvx, rltvy;
            double   mmx, mmy;
            ClsPoint retcpt;

            rltvx    = cpt.x;
            rltvy    = cpt.y;
            rltvx    = rltvx - m_dRltvMoveX;
            rltvy    = rltvy - m_dRltvMoveY;
            rltvx    = rltvx + m_dRltvXTop;
            rltvy    = rltvy + m_dRltvYTop;
            mmx      = rltvx * m_dXTime - m_dMMCntrX;
            mmy      = rltvy * m_dYTime - m_dMMCntrY;
            retcpt   = new ClsPoint();
            retcpt.x = mmx;
            retcpt.y = mmy;
            return(retcpt);
        }
Exemple #5
0
        public ClsPoint getBezeControlPoint(double x1, double y1, double x2, double y2, double rag)
        {
            ClsPoint pt;
            double   tsin, tcos;
            double   xt, yt;

            pt = new ClsPoint();
            if ((-2.0 * Math.PI) < rag && rag < (2.0 * Math.PI))
            {
                xt   = (x2 - x1) * 2.0 / 5.0;
                yt   = (y2 - y1) * 2.0 / 5.0;
                tcos = Math.Cos(rag);
                tsin = Math.Sin(rag);
                pt.x = (xt * tcos - yt * tsin) + x1;
                pt.y = (yt * tcos + xt * tsin) + y1;
            }
            else
            {
                pt.x = x1;
                pt.y = y1;
            }
            return(pt);
        }