internal void AddSegment(cSegment xSegment, int xNumber) { //funkcja dodająca nowy segment do listy //xSegment - wybrany segment //xNumber - numer segmentu mSegments.Insert(xNumber, xSegment); }
public void DrawPolygon(cPolygon xPolygon, PaintEventArgs e) { //funkcja rysująca dowolny wielobok //xPolygon - baza punktów Pen pBluePen; //kolor mazaka PointF[] pPointsLine; //punkty tworzące linie int pCount; //liczba boków figury int pIndexNext; //następny index segmentu int pIndex; pBluePen = new Pen(Color.Blue, 3); pPointsLine = new PointF[2]; pCount = xPolygon.Segments.Count; //pętla rysująca linię składającą się z dwóch punktów for (pIndex = 0; pIndex <= (pCount - 1); pIndex++) { pIndexNext = pIndex + 1; if (pIndex == (pCount - 1)) //następcą ostatniego punktu jest punkt początkowy { pIndexNext = 0; } cSegment pSegment = xPolygon.GetSegmentByNumer(pIndex); cSegment pSegment_Next = xPolygon.GetSegmentByNumer(pIndexNext); //wrzucić do xPolygon^^ if (!pSegment.IsCurve) //sprawdzenie lini: prosta, czy krzywa { pPointsLine[0] = new PointF(pSegment.Point.X, pSegment.Point.Y); pPointsLine[1] = new PointF(pSegment_Next.Point.X, pSegment_Next.Point.Y); e.Graphics.DrawPolygon(pBluePen, pPointsLine); } else { // DrawBezierCurve(pSegment, pSegment_Next, e); //[MO 10.03.2020] funkcja chwilowo wyłączona do poprawnej kompilacji } } }
public static cSegment GetSegment(int xOffsetX, int xOffsetY, cPoint xPoint, int xNumber) { //funkcja zwracająca segment //xOffsetX - przesunięcie względem osi X //xOffsetY - przesunięcie względem osi Y //xPoint - współrzędne punktu bazowego //xNumber - numer segmentu cPoint pPoint; PointF pPointHelper; cSegment pSegment; pPointHelper = new PointF(xPoint.X + xOffsetX, xPoint.Y + xOffsetY); pPoint = new cPoint(pPointHelper); pSegment = new cSegment(pPoint, xNumber); return(pSegment); }