public char GFigure(int x, int y) // вычисляем местоположение каждой фигуры { Squares square = new Squares(x, y); // берём клетку, которая была передана Figures fig = board.GetFigureOn(square); // вычисляем фигуру return(fig == Figures.zero ? '.' : (char)fig); // если фигура существует, возвращаем символ, иначе обнуляем }
} // превращение пешки в другую фигуру public FiguresMovements(FigureOnSquare fos, Squares to, Figures transformation = Figures.zero) // информация о фигуре на клетке { this.figure = fos.figure; // исходная фигура this.from = fos.square; // стартовая позиция this.to = to; // позиция после сделанного хода this.transformation = transformation; // превращение для пешки }
public EditorForm() { InitializeComponent(); state = Figures.Nothing; vector.AddObserver(this); AddObserver(vector); }
internal void AddThumbOnCenter(Line line) { var node = Figures.Find(line); var canvas = line.Parent as Canvas; var lastThumb = node.CircledNext().Value as Thumb; var thumbList = node.List.OfType <Thumb>().ToList(); var thumbIndex = thumbList.IndexOf(lastThumb); var centerX = (line.X1 + line.X2) / 2; var centerY = (line.Y1 + line.Y2) / 2; line.X2 = centerX; line.Y2 = centerY; var newPoint = new Point(centerX, centerY); Thumb t = CreateThumb(newPoint, canvas); canvas.Children.Add(t); var midtnode = Figures.AddAfter(node, t); var newLine = CreateLine(t, lastThumb, canvas); Figures.AddAfter(midtnode, newLine); if (thumbIndex == 0) { Polygon.Points.Add(newPoint); } else { Polygon.Points.Insert(thumbIndex, newPoint); } }
public void TestMethodCircleAre() { bool result; result = Figures.CircleAre(1) == Math.PI; Assert.IsTrue(result, String.Format("Result: {0}", result)); }
public void DeserializeDiagram(string openFile) { Figures.Clear(); JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, TypeNameHandling = TypeNameHandling.All, PreserveReferencesHandling = PreserveReferencesHandling.Objects }; List <IFigure> temp = JsonConvert.DeserializeObject <List <IFigure> >(openFile, jsonSerializerSettings); foreach (IFigure fgr in temp) { fgr.FigurePen.Color = fgr.PenColor; fgr.FigurePen.Width = fgr.PenWidth; if (fgr is ClassRectangle) { ClassRectangle classRectangle = (ClassRectangle)fgr; classRectangle.FigureBrush.Color = classRectangle.FigureBackColor; classRectangle.textFont = new Font(classRectangle.textFont.FontFamily, classRectangle.FontSize * _painter.Scale, classRectangle.textFont.Style); } Figures.Add(fgr); } Refresh(); }
public HollowRectangle(World world, int width, int height, int borderSize, int x, int y, string color = null, bool?isStatic = null) : base(world, x, y, color) { _originalWidth = width; _originalHeight = height; int halfX = width / 2; int halfY = height / 2; var figure1 = new Rectangle(world, width, borderSize, 0, x, y - halfY, color, isStatic); var figure2 = new Rectangle(world, borderSize, height, 0, x - halfX, y, color, isStatic); var figure3 = new Rectangle(world, width, borderSize, 0, x, y + halfY, color, isStatic); var figure4 = new Rectangle(world, borderSize, height, 0, x + halfX, y, color, isStatic); Figures.Add(figure1); Figures.Add(figure2); Figures.Add(figure3); Figures.Add(figure4); JointFactory.CreateWeldJoint(world, figure1.Body, figure2.Body, Vector2.Zero, Vector2.Zero); JointFactory.CreateWeldJoint(world, figure2.Body, figure3.Body, Vector2.Zero, Vector2.Zero); JointFactory.CreateWeldJoint(world, figure3.Body, figure4.Body, Vector2.Zero, Vector2.Zero); JointFactory.CreateWeldJoint(world, figure4.Body, figure1.Body, Vector2.Zero, Vector2.Zero); Density = 0.3f; Friction = 0; Restitution = 1; }
public void TestMethodIsTriangle() { bool result; result = Figures.IsTriangle(-5, -5, -5); Assert.IsFalse(result, String.Format("Result: {0}", result)); result = Figures.IsTriangle(1, 1, 0); Assert.IsFalse(result, String.Format("Result: {0}", result)); result = Figures.IsTriangle(1, 1, 1); Assert.IsTrue(result, String.Format("Result: {0}", result)); result = Figures.IsTriangle(3, 4, 5); Assert.IsTrue(result, String.Format("Result: {0}", result)); result = Figures.IsTriangle(8, 8, 4); Assert.IsTrue(result, String.Format("Result: {0}", result)); result = Figures.IsTriangle(8, 1, 1); Assert.IsFalse(result, String.Format("Result: {0}", result)); result = Figures.IsTriangle(8, 4, 4); Assert.IsFalse(result, String.Format("Result: {0}", result)); }
/// <summary> /// Generates the segments of the pie slice object. /// </summary> protected override void BuildFiguresOverride() { double initialAngleRad = GeometryHelper.DegreeToRadian(_initialAngle); double effectiveAngleRad = GeometryHelper.DegreeToRadian(_initialAngle + _angle); double radiusX = Double.IsNaN(Width) ? 1.0 : (Width - StrokeThickness) / 2; double radiusY = Double.IsNaN(Height) ? 1.0 : (Height - StrokeThickness) / 2; _figure.Segments.Clear(); _figure.StartPoint = new Point(radiusX, radiusY); LineSegment lineSegment = new LineSegment(); lineSegment.Point = new Point( radiusX + Math.Cos(initialAngleRad) * radiusX, radiusY + Math.Sin(initialAngleRad) * radiusY); _figure.Segments.Add(lineSegment); ArcSegment arcSegment = new ArcSegment(); arcSegment.Point = new Point( radiusX + Math.Cos(effectiveAngleRad) * radiusX, radiusY + Math.Sin(effectiveAngleRad) * radiusY); arcSegment.Size = new Size(radiusX, radiusY); arcSegment.SweepDirection = SweepDirection.Clockwise; arcSegment.IsLargeArc = (_angle % 360) >= 180; _figure.Segments.Add(arcSegment); Figures.Add(_figure); }
void SetFigureOn(Squares square, Figures figure) // метод для установки фигур { if (square.PosOnBoard()) { figures[square.x, square.y] = figure; } }
protected override bool Receive(FigureProtocol.ShowCommand showCommand) { if (!Figures.ContainsKey(showCommand.FigureId)) { return(false); } Figure fig = Figures[showCommand.FigureId]; fig.Showed = true; foreach (Figure figure in Figures.Values) { if (!figure.Showed) { return(true); } } Execute(@" plt.ion() "); foreach (Figure figure in Figures.Values) { figure.Showed = false; } foreach (Curve curve in fig.Curves.Values) { curve.CachedTime = DateTime.Now; } return(true); }
protected virtual void Flush(Curve curve, int figureId, int curveHandle) { string curveID = $"{figureId}_{curveHandle}"; Execute($@" xdata{curveID} = np.append(xdata{curveID}, [{string.Join(',', curve.CachedX)}]) ydata{curveID} = np.append(ydata{curveID}, [{string.Join(',', curve.CachedY)}]) cv{curveID}.set_data(xdata{curveID}, ydata{curveID}) ax{figureId}.set_xlim((min(xdata{curveID}), max(xdata{curveID}))) ax{figureId}.set_ylim((min(ydata{curveID}), max(ydata{curveID}))) "); curve.CachedX.Clear(); curve.CachedY.Clear(); curve.CachedTime = DateTime.Now; curve.Paused = true; if (Figures.All(fig => fig.Value.Paused)) { Execute(@" plt.pause(0.05) "); foreach (Figure fig in Figures.Values) { fig.Paused = false; } } }
public void StartFigure(Point firstPoint) { var newfig = new SeriesFigure(); newfig.Points.Add(firstPoint); Figures.Add(newfig); }
public static List <Brick> Update(Figures Figure, ref List <Brick> TetrisGridEngine) { foreach (Brick item in Figure.PreviousState) { if (item.PosY >= 0) { TetrisGridEngine.Find(x => x.PosY == item.PosY && x.PosX == item.PosX).IsPresent = false; TetrisGridEngine.Find(x => x.PosY == item.PosY && x.PosX == item.PosX).IsMain = false; } } foreach (Brick item in Figure.FigureType) { if (item.IsSolid == true) { return(TetrisGridEngine); } if (item.PosY >= 0) { TetrisGridEngine.Find(x => x.PosY == item.PosY && x.PosX == item.PosX).IsPresent = true; if (item.IsMain == true) { TetrisGridEngine.Find(x => x.PosY == item.PosY && x.PosX == item.PosX).IsMain = true; } } } return(TetrisGridEngine); }
public static void Write_Encrypted_Figure() { // Save As var dialog = new SaveFileDialog { Filter = "Dump File (*.bin)|*.bin|All files (*.*)|*.*", FilterIndex = 1, RestoreDirectory = true, Title = "Save Encrypted Dump", FileName = frmMain.lstCharacters.SelectedItem }; if (dialog.ShowDialog = DialogResult.OK) { var newFile = dialog.FileName; if (frmMain.chkSerial.Checked) { CRC16CCITT.GenerateNewSerial(); } Figures.EditCharacterIDVariant(); Write_Data(); // Since we are Writing an Encrypted Figure, I need to Re-Encrypt it. Encrypt(); // Now we write the file. fs = new FileStream(NewFile, FileMode.OpenOrCreate); fs.Write(WholeFile, 0, WholeFile.Length); fs.Flush(); fs.Close(); // We Decrypt after we are done. Decrypt(); } }
private void MainForm_MouseClick(object sender, MouseEventArgs e) { if (figuresBuilder == null) { return; } selectedFigure = figuresBuilder.build(); selectedFigure.Location = e.Location; if (ChoseColorForm.chosenColor == default) { ChoseColorForm.getFigureBaseColor(selectedFigure.FigureType); selectedFigure.Color = ChoseColorForm.baseColor; } else { selectedFigure.Color = ChoseColorForm.chosenColor; } AreaAccumulator.accumulateArea(selectedFigure.Area, selectedFigure.FigureType); displayArea(); _figures.Add(selectedFigure); Invalidate(); }
private void Polychop() { Program.PrintTitle("RUNNING STEP 4"); Console.WriteLine("PolyChop is running"); var cow = Figures.Cow(); var details = new[] { 100, 25, 10, 2, 1 }; var resulttup = new Tuple <IPolygon, string> [details.Length]; var resultarray = new IPolygon[details.Length]; for (int i = 0; i < details.Length; i++) { resultarray[i] = new Polychop().Run(cow, new ExportBuilder(), (int)(cow.VertexCount * (100f - details[i]) / 100f)); resulttup[i] = Tuple.Create(resultarray[i], "Cow mesh with " + (100 - details[i]) + " % edges removed by PolyChop"); } if (!LaunchView(resulttup)) { Export(resultarray, new long[resultarray.Length]); } Console.WriteLine("\nStep 4 finished"); Console.WriteLine("\nPRESS ANY KEY TO CONTINUE"); }
/// <summary> /// Generates the points and segments of the polygonal Figure object. /// </summary> protected override void BuildFiguresOverride() { _points.Clear(); double initialAngleRad = GeometryHelper.DegreeToRadian(_initialAngle); double angle1Rad = 2 * Math.PI / _sideCount; double angleRad = 0.0; double areaWidth = Double.IsNaN(Width) ? 0.0 : Width / 2; double areaHeight = Double.IsNaN(Height) ? 0.0 : Height / 2; for (int i = 1; i <= _sideCount; i++) { angleRad = (angle1Rad * i) + initialAngleRad; Point p = new Point(); p.X = areaWidth == 0.0 ? Math.Cos(angleRad) : areaWidth + Math.Cos(angleRad) * (areaWidth - StrokeThickness / 2); p.Y = areaHeight == 0.0 ? Math.Sin(angleRad) : areaHeight + Math.Sin(angleRad) * (areaHeight - StrokeThickness / 2); _points.Add(p); } _figure.Segments.Clear(); _figure.StartPoint = _points[0]; for (int i = 0; i < _points.Count; i++) { if (i < _points.Count - 1) { LineSegment segment = new LineSegment(); segment.Point = _points[i + 1]; _figure.Segments.Add(segment); } } Figures.Add(_figure); }
static void Main(string[] args) { FigureRectangle figRect = new FigureRectangle(); figRect.NomForme(); FigureTriangle figTri = new FigureTriangle(); figTri.NomForme(); Console.WriteLine("**********************************"); Figures figS = new Figures(); figS.Add(figRect); figS.Add(figTri); figS.NomForme(); Console.WriteLine("**********************************"); //mafigure.Accept(new Visiteur()); -> aura pour consequence d'afficher le message VisiteurFigurePourConsole iv = new VisiteurFigurePourConsole(); FigureRectangle figRect2 = new FigureRectangle(); iv.Visit(figRect2); }
public void Stop() { _runEngine = false; _thread?.Abort(); //_stepThread?.Abort(); IEnumerable <IFigure> figures; lock (Figures) figures = Figures.ToList(); foreach (var figure in figures) { RemoveFigure(figure); } Figures.Clear(); IEnumerable <IComplexFigure> cfigures; lock (Figures) cfigures = CFigures.ToList(); foreach (var figure in cfigures) { RemoveComplexFigure(figure); } CFigures.Clear(); TextInfos.Clear(); _thread?.Abort(); //_stepThread?.Abort(); //_stepThread = null; }
public static void GetAreaAndPerimeterOfFigure(Figures figure, FigureWorker worker) { switch (figure.ToString()) { case "Circle": { worker.CircleRun(figure.ToString()); break; } case "Triangle": { worker.TrinagleRun(figure.ToString()); break; } case "Rectangle": { worker.RectangleRun(figure.ToString()); break; } default: { throw new InvalidEnumArgumentException(); } } }
public IEnumerable <IFigure> GetSerializableFigures() { foreach (IFigure figure in Figures.Where(f => f.Serializable)) { yield return(figure); } }
public Figure(Model model) { int i = Random.Range(0,5); switch (i) { case 0: this.form = new bool[2, 3] { { true, true, true }, { true, false, false } }; this.nameFigure = Figures.Horse; if (Random.Range(0.0f, 1.0f) > 0.5f) this.Reflector(); break; case 1: this.form = new bool[2, 3] { { false, true, false }, { true, true, true } }; this.nameFigure = Figures.Pedestal; break; case 2: this.form = new bool[2, 2] { { true, true }, { true, true } }; this.nameFigure = Figures.Square; break; case 3: this.form = new bool[2, 3] { { true, true, false }, { false, true, true } }; this.nameFigure = Figures.Steps; if (Random.Range(0.0f, 1.0f) > 0.5f) this.Reflector(); break; case 4: this.form = new bool[1, 4] { { true, true, true, true } }; this.nameFigure = Figures.Stick; break; } if (model != null) this.position = new Point((int)(model.cells.GetLength(1) / 2) - (this.form.GetLength(1) / 2), -2*(this.form.GetLength(0))); }
public void VisualiseField(Field f, Figures fig) { for (int r = 0; r < f.Rows; r++) { Console.Write(" . "); for (int c = 0; c < f.Cols; c++) { string currCoo = r + " " + c; if (fig.Coordinates.Contains(currCoo) || f.FigCoordinates.Contains(currCoo)) { Console.Write("▒ "); } else if (r == 2) { Console.Write("~~"); } else { Console.Write(" "); } } Console.Write(". "); Console.WriteLine(); } Console.Write(" "); for (int c = 0; c < f.Cols + 2; c++) { Console.Write("--"); } }
public static bool CheckMoveCorrectness(string from, string to, Figures fig) { var dx = Math.Abs(to[0] - from[0]); var dy = Math.Abs(to[1] - from[1]); switch (fig) { case Figures.queen: return((dx != 0 || dy != 0) && (dx == dy || dx == 0 || dy == 0)); case Figures.bishop: return(dx == dy && dx != 0); case Figures.knight: return((dx == 2 && dy == 1) || (dx == 1 && dy == 2)); case Figures.rook: return((dx != 0 || dy != 0) && (dx == 0 || dy == 0)); case Figures.king: return((dx == 1 || dy == 1) && (dx == 0 || dy == 0 || dx == dy)); } return(false); }
static void DrawFigure(CairoContextEx gr, double x, double y, Figures figure) { switch (figure) { case Figures.FigureA: double x105, y105; x105 = figure_size * Math.Cos(105 * Math.PI / 180); y105 = figure_size * Math.Sin(105 * Math.PI / 180); gr.MoveTo(x, y); gr.LineTo(x + x105, y + y105); gr.LineTo(x + x105 + figure_size, y + y105); gr.Stroke(); gr.MoveTo(x + figure_size, y); gr.LineTo(x + figure_size + x105, y + y105); gr.Stroke(); gr.MoveTo(x, y); gr.LineTo(x + figure_size, y); break; case Figures.FigureB: gr.Rectangle(x, y, figure_size * 0.8, figure_size * 1.2); break; case Figures.FigureC: gr.MoveTo(x, y); gr.LineTo(x + figure_size * 1.3, y); gr.LineTo(x + figure_size * 1.3, y + figure_size); gr.LineTo(x, y + figure_size); gr.LineTo(x, y); break; case Figures.FigureD: gr.MoveTo(x + 0.03, y); gr.LineTo(x + figure_size - 0.03, y); gr.LineTo(x + figure_size, y + figure_size); gr.LineTo(x, y + figure_size); gr.LineTo(x + 0.03, y); break; case Figures.FigureE: gr.MoveTo(x + 0.03, y); gr.LineTo(x + figure_size - 0.04, y); gr.LineTo(x + figure_size - 0.04, y + figure_size * 1.2); gr.LineTo(x, y + figure_size * 1.2); gr.LineTo(x + 0.03, y); break; case Figures.FigureF: gr.MoveTo(x, y); gr.LineTo(x, y + figure_size); gr.LineTo(x + figure_size, y + figure_size); gr.LineTo(x + figure_size - 0.02, y); gr.LineTo(x, y); break; } gr.Stroke(); }
protected override void Initialize() { Answer.CheckAttributes |= GameAnswerCheckAttributes.MultiOption | GameAnswerCheckAttributes.IgnoreSpaces; figures = new Figures (); SetDrawingAreas (); Answer.Correct = Answer.GetMultiOption (figures.GetRightAnswerIndex()); }
protected override void Initialize() { Answer.CheckAttributes |= GameAnswerCheckAttributes.MultiOption | GameAnswerCheckAttributes.IgnoreSpaces; figures = new Figures(); SetDrawingAreas(); Answer.Correct = Answer.GetMultiOption(figures.GetRightAnswerIndex()); }
public static void Main(string[] args) { Figures fig = (Figures)Enum.Parse(typeof(Figures), Console.ReadLine()); string from = Console.ReadLine(); string to = Console.ReadLine(); Console.WriteLine(fig + " " + CheckMoveCorrectness(from, to, fig)); }
/// <summary> /// Сортировка /// </summary> /// <param name="comparer">Объект класса для сравнения</param> public void Sort(IComparer <Figure> comparer = null) { if (comparer is null) { comparer = new FigureComparer(); } Figures.Sort(comparer); }
public Figure[] GetFigures(Color color, FiguresEnum type) { string typeString = type.ToString(); return(Figures .Where(f => f.Color == color && f.GetType().Name == typeString) .ToArray()); }
private void buttonStartMutant_Click(object sender, EventArgs e) { pointsMutant = new List <Interfaces.Point>(); selectedFigure = Figures.Mutant; pointsMutant.Clear(); listFragments.Clear(); }
public Id(Figures figure, CardColors color) { this.isJoker = false; this.image = null; this.color = color; this.figure = figure; this.blocked = false; }
public Figure(Figure figureCopy) { if (figureCopy != null && this != null) { this.nameFigure = figureCopy.nameFigure; this.position = figureCopy.position; this.form = new bool[figureCopy.form.GetLength(0), figureCopy.form.GetLength(1)]; for (int y = 0; y < this.form.GetLength(0); y++) { for (int x = 0; x < this.form.GetLength(1); x++) { this.form[y, x] = figureCopy.form[y, x]; } } } }
private void buttonTextToolBar_Click(object sender, EventArgs e) { UncheckAllFigures(); buttonTextMenu.Checked = true; buttonTextToolBar.Checked = true; FigureStatus.Text = "Текст"; currentFigure = Figures.Text; }
private void ButtonRectangle_Click(object sender, EventArgs e) { UncheckAllFigures(); buttonRectangleMenu.Checked = true; buttonRectangleToolBar.Checked = true; FigureStatus.Text = "Прямоугольник"; currentFigure=Figures.Rectangle; }
private void ButtonLine_Click(object sender, EventArgs e) { UncheckAllFigures(); buttonLineMenu.Checked = true; buttonLineToolBar.Checked = true; FigureStatus.Text = "Линия"; currentFigure=Figures.Line; }
private void ButtonEllipse_Click(object sender, EventArgs e) { UncheckAllFigures(); buttonEllipseMenu.Checked = true; buttonEclipseToolBar.Checked = true; FigureStatus.Text = "Эллипс"; currentFigure=Figures.Ellipse; }
private void ButtonCurve_Click(object sender, EventArgs e) { UncheckAllFigures(); buttonCurveMenu.Checked = true; buttonCurveToolBar.Checked = true; FigureStatus.Text = "Кривая линия"; currentFigure=Figures.Curve; }
static void DrawFigure(CairoContextEx gr, double x, double y, Figures figure) { switch (figure) { case Figures.FigureA: double x105, y105; x105 = figure_size * Math.Cos (105 * Math.PI / 180); y105 = figure_size * Math.Sin (105 * Math.PI / 180); gr.MoveTo (x, y); gr.LineTo (x + x105, y + y105); gr.LineTo (x + x105 + figure_size, y + y105); gr.Stroke (); gr.MoveTo (x + figure_size, y); gr.LineTo (x + figure_size + x105, y + y105); gr.Stroke (); gr.MoveTo (x, y); gr.LineTo (x + figure_size, y); break; case Figures.FigureB: gr.Rectangle (x, y, figure_size * 0.8, figure_size * 1.2); break; case Figures.FigureC: gr.MoveTo (x, y); gr.LineTo (x + figure_size * 1.3, y); gr.LineTo (x + figure_size * 1.3, y + figure_size); gr.LineTo (x , y + figure_size); gr.LineTo (x, y); break; case Figures.FigureD: gr.MoveTo (x + 0.03, y); gr.LineTo (x + figure_size - 0.03, y); gr.LineTo (x + figure_size, y + figure_size); gr.LineTo (x , y + figure_size); gr.LineTo (x + 0.03, y); break; case Figures.FigureE: gr.MoveTo (x + 0.03, y); gr.LineTo (x + figure_size - 0.04, y); gr.LineTo (x + figure_size - 0.04, y + figure_size * 1.2); gr.LineTo (x , y + figure_size * 1.2); gr.LineTo (x + 0.03, y); break; case Figures.FigureF: gr.MoveTo (x, y); gr.LineTo (x, y + figure_size); gr.LineTo (x + figure_size, y + figure_size); gr.LineTo (x + figure_size - 0.02, y); gr.LineTo (x, y); break; } gr.Stroke (); }
public Image GetImageByColorAndId(Figures figure, CardColors cardColor) { Image image = new Image { Source = this.cards[(int) figure, (int) cardColor], Height = this.CardSize, Width = this.CardSize }; return image; }
private static void DrawFigure(CairoContextEx gr, double x, double y, Figures figure) { switch (figure) { case Figures.TriangleA: gr.DrawEquilateralTriangle (x, y, figure_size); break; case Figures.TriangleB: gr.MoveTo (x, y); gr.LineTo (x, y + figure_size); gr.LineTo (x + figure_size, y); gr.LineTo (x, y); gr.Stroke (); break; case Figures.TriangleC: gr.MoveTo (x, y); gr.LineTo (x, y + figure_size); gr.LineTo (x + figure_size, y + figure_size); gr.LineTo (x, y); gr.Stroke (); break; case Figures.Square: gr.Rectangle (x, y, figure_size, figure_size); gr.Stroke (); break; case Figures.LongRectangle: gr.Rectangle (x, y + figure_size / 2, figure_size, figure_size / 2); gr.Stroke (); break; case Figures.LongRectangleUp: gr.Rectangle (x, y, figure_size, figure_size / 2); gr.Stroke (); break; case Figures.Diamon: gr.DrawDiamond (x, y, figure_size); break; case Figures.TriangleD: gr.MoveTo (x, y); gr.LineTo (x, y + figure_size * 0.7); gr.LineTo (x + figure_size * 0.7, y + figure_size * 0.7); gr.LineTo (x, y); gr.Stroke (); break; } }