/// <inheritdoc/> protected override void Draw(SvgDrawing drawing) { drawing.Polyline(new[] { new Vector2(-8, -8), new Vector2(8, 0), new Vector2(-8, 8), new Vector2(-8, -8) }); drawing.Segments(new[] { // Plus new Vector2(-6, -4), new Vector2(-4, -4), // Minus new Vector2(-5, 5), new Vector2(-5, 3), new Vector2(-6, 4), new Vector2(-4, 4) }); if (Pins.IsUsed("vn")) { drawing.Line(new Vector2(0, -4), new Vector2(0, -6)); } if (Pins.IsUsed("vp")) { drawing.Line(new Vector2(0, 4), new Vector2(0, 6)); } if (!string.IsNullOrWhiteSpace(Label)) { drawing.Text(Label, new Vector2(5, 5), new Vector2(1, 1)); } }
/// <inheritdoc /> protected override void Draw(SvgDrawing drawing) { drawing.Segments(new[] { new Vector2(-8, 0), new Vector2(-6, 0), new Vector2(6, 4), new Vector2(8, 4), new Vector2(6, -4), new Vector2(8, -4) }); drawing.Circle(new Vector2(-5, 0), 1); drawing.Circle(new Vector2(5, 4), 1); drawing.Circle(new Vector2(5, -4), 1); if (Throw.IsZero()) { drawing.Line(new Vector2(-4, 0), new Vector2(5, 0)); } else if (Throw > 0) { drawing.Line(new Vector2(-4, 0), new Vector2(4, 4)); } else { drawing.Line(new Vector2(-4, 0), new Vector2(4, -4)); } if (Pins.IsUsed("c")) { drawing.Line(new Vector2(0, 2), new Vector2(0, 6)); } }
/// <inheritdoc/> protected override void Draw(SvgDrawing drawing) { drawing.Line(new Vector2(0, 0), new Vector2(0, -3)); drawing.Line(new Vector2(-5, -3), new Vector2(5, -3), "plane"); if (!string.IsNullOrWhiteSpace(Label)) { drawing.Text(Label, new Vector2(0, -6), new Vector2(0, -1)); } }
private void DrawPower(SvgDrawing drawing) { // Wire drawing.Line(new Vector2(0, 0), new Vector2(0, -3), new("wire")); // Power drawing.Line(new Vector2(-5, -3), new Vector2(5, -3), new("plane")); if (!string.IsNullOrWhiteSpace(Label)) { drawing.Text(Label, new Vector2(0, -6), new Vector2(0, -1)); } }
/// <inheritdoc/> protected override void Draw(SvgDrawing drawing) { drawing.Segments(new[] { new Vector2(0, 11), new Vector2(0, 9), new Vector2(-6, 6), new Vector2(6, 6), new Vector2(-6, 4), new Vector2(6, 4) }); drawing.Circle(new Vector2(0, 7.5), 1.5); drawing.Polyline(new[] { new Vector2(-8, 0), new Vector2(-4, 0), new Vector2(-4, 4) }); drawing.Polyline(new[] { new Vector2(8, 0), new Vector2(4, 0), new Vector2(4, 4) }); if (Pins.IsUsed("b")) { drawing.Line(new Vector2(0, 4), new Vector2(0, 0)); if (!string.IsNullOrEmpty(Label)) { drawing.Text(Label, new Vector2(-3, -3), new Vector2(-1, -1)); } } else if (!string.IsNullOrEmpty(Label)) { drawing.Text(Label, new Vector2(0, -3), new Vector2(0, -1)); } }
/// <inheritdoc/> protected override void Draw(SvgDrawing drawing) { drawing.Polyline(new Vector2[] { new Vector2(-8, 0), new Vector2(-6, 0), new Vector2(-5, -4), new Vector2(-3, 4), new Vector2(-1, -4), new Vector2(1, 4), new Vector2(3, -4), new Vector2(5, 4), new Vector2(6, 0), new Vector2(8, 0) }); if (Pins.IsUsed("c")) { drawing.Line(new Vector2(0, 4), new Vector2(0, 8)); drawing.Polygon(new[] { new Vector2(0, 4), new Vector2(-1, 7), new Vector2(1, 7) }); } // Depending on the orientation, let's anchor the text differently if (!string.IsNullOrWhiteSpace(Label)) { drawing.Text(Label, new Vector2(0, -7), new Vector2(0, -1)); } }
/// <inheritdoc/> protected override void Draw(SvgDrawing drawing) { drawing.Line(new Vector2(0, 0), new Vector2(0, 3)); drawing.Polygon(new[] { new Vector2(-5, 3), new Vector2(5, 3), new Vector2(0, 7) }); }
private void DrawTerminal(SvgDrawing drawing) { drawing.Line(new Vector2(), new Vector2(-4, 0), new("wire")); drawing.Circle(new Vector2(-5.5, 0), 1.5, new("terminal")); if (!string.IsNullOrWhiteSpace(Label)) { drawing.Text(Label, new Vector2(-10, 0), new Vector2(-1, 0)); } }
/// <inheritdoc/> protected override void Draw(SvgDrawing drawing) { drawing.Line(new Vector2(), new Vector2(-4, 0)); drawing.Circle(new Vector2(-5.5, 0), 1.5, "terminal"); if (!string.IsNullOrWhiteSpace(Label)) { drawing.Text(Label, new Vector2(-10, 0), new Vector2(-1, 0)); } }
private void DrawOutputSigns(SvgDrawing drawing) { if (Pins[2].Connections == 0) { var loc = ((FixedOrientedPin)Pins[2]).Offset; drawing.Line(loc, loc + new Vector2(4, 0), new("wire")); } if (Pins[3].Connections == 0) { var loc = ((FixedOrientedPin)Pins[3]).Offset; drawing.Line(loc, loc + new Vector2(4, 0), new("wire")); } double x = Width / 2 - Height / 4 + 2; double y = Height / 4 + 1.5; drawing.Signs(new(x, -y), new(x, y)); }
private void DrawSignalGround(SvgDrawing drawing) { // Wires drawing.Line(new Vector2(0, 0), new Vector2(0, 3), new("wire")); // Ground drawing.Polygon(new[] { new Vector2(-5, 3), new Vector2(5, 3), new Vector2(0, 7) }); }
private void DrawDifferentialOutput(SvgDrawing drawing, bool swapped) { if (Pins[4].Connections == 0) { var loc = ((FixedOrientedPin)Pins[4]).Offset; drawing.Line(loc, loc + new Vector2(5, 0), new("wire")); } if (Pins[5].Connections == 0) { var loc = ((FixedOrientedPin)Pins[5]).Offset; drawing.Line(loc, loc + new Vector2(5, 0), new("wire")); } if (swapped) { drawing.Signs(new(5, -6), new(5, 6)); } else { drawing.Signs(new(5, 6), new(5, -6)); } }
/// <inheritdoc /> protected override void Draw(SvgDrawing drawing) { drawing.Segments(new[] { new Vector2(-8, 0), new Vector2(-6, 0), new Vector2(6, 0), new Vector2(8, 0) }); drawing.Circle(new Vector2(-5, 0), 1); drawing.Circle(new Vector2(5, 0), 1); if (Closed.IsZero()) { drawing.Line(new Vector2(-4, 0), new Vector2(4, 0)); } else { drawing.Line(new Vector2(-4, 0), new Vector2(4, 4)); } if (Pins.IsUsed("c")) { if (Closed.IsZero()) { drawing.Line(new Vector2(0, 0), new Vector2(0, 6)); } else { drawing.Line(new Vector2(0, 2), new Vector2(0, 6)); } } if (!string.IsNullOrWhiteSpace(Label)) { drawing.Text(Label, new Vector2(0, -6), new Vector2(0, -1)); } }