public ClsPoint GetScrnSize() { ClsPoint retcpt; retcpt = new ClsPoint(); retcpt.x = m_dMMWorkXSize; retcpt.y = m_dMMWorkYSize; return(retcpt); }
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); }
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); }
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); }
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); }