Updated Bezier pencil and the sample box is now much better because it actually simulate the PaintTool

This commit is contained in:
2022-06-16 14:30:10 +02:00
parent f339c5e411
commit 2c0ac2979a
5 changed files with 121 additions and 38 deletions

View File

@@ -78,17 +78,16 @@ namespace Paint_2
} }
} }
if (points.Count > 0) if (points.Count > 0)
{ {
for (int i = 0; i < points.Count; i++)
for (int i = 1; i <= points.Count; i++)
{ {
pointSize = new Size(Widths[0], Widths[0]); pointSize = new Size(Widths[0]/2, Widths[0]/2);
gr.FillEllipse(new SolidBrush(Colors[i - 1]), new Rectangle(new Point(points[i - 1].X - pointSize.Width / 2, points[i - 1].Y - pointSize.Height / 2), pointSize)); gr.FillEllipse(new SolidBrush(Colors[i]), new Rectangle(new Point(points[i].X - pointSize.Width / 2, points[i].Y - pointSize.Height / 2), pointSize));
ContinuousBezierGenerator(gr, points, i); ContinuousBezierGenerator(gr, points, i, Colors[Colors.Count-1], Widths[Widths.Count -1]);
} }
} }
} }
private void ContinuousBezierGenerator(Graphics gr, List<Point> points, int i) private void ContinuousBezierGenerator(Graphics gr, List<Point> points, int i,Color color,int width)
{ {
if (points.Count >= 4 && points.Count % 2 == 0) if (points.Count >= 4 && points.Count % 2 == 0)
{ {
@@ -100,7 +99,7 @@ namespace Paint_2
while (WorkingList.Count != 1) while (WorkingList.Count != 1)
{ {
if (WorkingList.Count > 2) if (WorkingList.Count > 1)
{ {
for (int pos = 0; pos < WorkingList.Count - 1; pos++) for (int pos = 0; pos < WorkingList.Count - 1; pos++)
{ {
@@ -114,7 +113,7 @@ namespace Paint_2
WorkingList = new List<Point>(DumpList); WorkingList = new List<Point>(DumpList);
DumpList = new List<Point>(); DumpList = new List<Point>();
} }
gr.FillEllipse(new SolidBrush(GetRandomColor()), new Rectangle(WorkingList[0].X - Widths[0] / 2, WorkingList[0].Y - Widths[0] / 2, Widths[0], Widths[0])); gr.FillEllipse(new SolidBrush(color), new Rectangle(WorkingList[0].X - Widths[0] / 2, WorkingList[0].Y - Widths[0] / 2, width, width));
} }
} }
} }

View File

@@ -15,7 +15,7 @@ namespace Paint_2
{ {
public class DotPencil : PaintTool public class DotPencil : PaintTool
{ {
const int POST_PROCESSING_PRECISION = 3; const int POST_PROCESSING_PRECISION = 1;
private List<List<Point>> _drawings; private List<List<Point>> _drawings;
private List<List<Point>> _drawingsRedo; private List<List<Point>> _drawingsRedo;

View File

@@ -90,7 +90,7 @@
this.tbxProjectName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.tbxProjectName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tbxProjectName.Font = new System.Drawing.Font("Verdana", 15F); this.tbxProjectName.Font = new System.Drawing.Font("Verdana", 15F);
this.tbxProjectName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.tbxProjectName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.tbxProjectName.Location = new System.Drawing.Point(2, 3); this.tbxProjectName.Location = new System.Drawing.Point(2, 4);
this.tbxProjectName.Margin = new System.Windows.Forms.Padding(2); this.tbxProjectName.Margin = new System.Windows.Forms.Padding(2);
this.tbxProjectName.Name = "tbxProjectName"; this.tbxProjectName.Name = "tbxProjectName";
this.tbxProjectName.Size = new System.Drawing.Size(225, 32); this.tbxProjectName.Size = new System.Drawing.Size(225, 32);
@@ -102,7 +102,7 @@
this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59)))));
this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnSave.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnSave.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnSave.Location = new System.Drawing.Point(231, 2); this.btnSave.Location = new System.Drawing.Point(231, 3);
this.btnSave.Margin = new System.Windows.Forms.Padding(2); this.btnSave.Margin = new System.Windows.Forms.Padding(2);
this.btnSave.Name = "btnSave"; this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(54, 33); this.btnSave.Size = new System.Drawing.Size(54, 33);
@@ -129,7 +129,7 @@
this.btnSaveCopy.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); this.btnSaveCopy.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59)))));
this.btnSaveCopy.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnSaveCopy.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnSaveCopy.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnSaveCopy.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnSaveCopy.Location = new System.Drawing.Point(289, 2); this.btnSaveCopy.Location = new System.Drawing.Point(289, 3);
this.btnSaveCopy.Margin = new System.Windows.Forms.Padding(2); this.btnSaveCopy.Margin = new System.Windows.Forms.Padding(2);
this.btnSaveCopy.Name = "btnSaveCopy"; this.btnSaveCopy.Name = "btnSaveCopy";
this.btnSaveCopy.Size = new System.Drawing.Size(92, 33); this.btnSaveCopy.Size = new System.Drawing.Size(92, 33);
@@ -166,7 +166,7 @@
this.btnLoadFile.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); this.btnLoadFile.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59)))));
this.btnLoadFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnLoadFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnLoadFile.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnLoadFile.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnLoadFile.Location = new System.Drawing.Point(385, 2); this.btnLoadFile.Location = new System.Drawing.Point(385, 3);
this.btnLoadFile.Margin = new System.Windows.Forms.Padding(2); this.btnLoadFile.Margin = new System.Windows.Forms.Padding(2);
this.btnLoadFile.Name = "btnLoadFile"; this.btnLoadFile.Name = "btnLoadFile";
this.btnLoadFile.Size = new System.Drawing.Size(96, 33); this.btnLoadFile.Size = new System.Drawing.Size(96, 33);
@@ -190,7 +190,7 @@
// //
this.lblHeight.AutoSize = true; this.lblHeight.AutoSize = true;
this.lblHeight.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.lblHeight.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.lblHeight.Location = new System.Drawing.Point(3, 33); this.lblHeight.Location = new System.Drawing.Point(3, 38);
this.lblHeight.Name = "lblHeight"; this.lblHeight.Name = "lblHeight";
this.lblHeight.Size = new System.Drawing.Size(53, 14); this.lblHeight.Size = new System.Drawing.Size(53, 14);
this.lblHeight.TabIndex = 34; this.lblHeight.TabIndex = 34;
@@ -299,7 +299,7 @@
this.nupPencilWidth.BorderStyle = System.Windows.Forms.BorderStyle.None; this.nupPencilWidth.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.nupPencilWidth.Font = new System.Drawing.Font("Cascadia Code", 15F); this.nupPencilWidth.Font = new System.Drawing.Font("Cascadia Code", 15F);
this.nupPencilWidth.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.nupPencilWidth.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.nupPencilWidth.Location = new System.Drawing.Point(126, 166); this.nupPencilWidth.Location = new System.Drawing.Point(134, 166);
this.nupPencilWidth.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.nupPencilWidth.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.nupPencilWidth.Maximum = new decimal(new int[] { this.nupPencilWidth.Maximum = new decimal(new int[] {
255, 255,
@@ -307,7 +307,7 @@
0, 0,
0}); 0});
this.nupPencilWidth.Name = "nupPencilWidth"; this.nupPencilWidth.Name = "nupPencilWidth";
this.nupPencilWidth.Size = new System.Drawing.Size(63, 27); this.nupPencilWidth.Size = new System.Drawing.Size(55, 27);
this.nupPencilWidth.TabIndex = 17; this.nupPencilWidth.TabIndex = 17;
this.nupPencilWidth.Value = new decimal(new int[] { this.nupPencilWidth.Value = new decimal(new int[] {
10, 10,
@@ -322,7 +322,7 @@
this.btnColorHistory4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnColorHistory4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnColorHistory4.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnColorHistory4.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnColorHistory4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnColorHistory4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnColorHistory4.Location = new System.Drawing.Point(3, 2); this.btnColorHistory4.Location = new System.Drawing.Point(3, 3);
this.btnColorHistory4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnColorHistory4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnColorHistory4.Name = "btnColorHistory4"; this.btnColorHistory4.Name = "btnColorHistory4";
this.btnColorHistory4.Size = new System.Drawing.Size(36, 33); this.btnColorHistory4.Size = new System.Drawing.Size(36, 33);
@@ -336,7 +336,7 @@
this.btnColorHistory3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnColorHistory3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnColorHistory3.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnColorHistory3.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnColorHistory3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnColorHistory3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnColorHistory3.Location = new System.Drawing.Point(45, 2); this.btnColorHistory3.Location = new System.Drawing.Point(45, 3);
this.btnColorHistory3.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnColorHistory3.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnColorHistory3.Name = "btnColorHistory3"; this.btnColorHistory3.Name = "btnColorHistory3";
this.btnColorHistory3.Size = new System.Drawing.Size(36, 33); this.btnColorHistory3.Size = new System.Drawing.Size(36, 33);
@@ -350,7 +350,7 @@
this.btnColorHistory2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnColorHistory2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnColorHistory2.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnColorHistory2.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnColorHistory2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnColorHistory2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnColorHistory2.Location = new System.Drawing.Point(87, 2); this.btnColorHistory2.Location = new System.Drawing.Point(87, 3);
this.btnColorHistory2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnColorHistory2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnColorHistory2.Name = "btnColorHistory2"; this.btnColorHistory2.Name = "btnColorHistory2";
this.btnColorHistory2.Size = new System.Drawing.Size(36, 33); this.btnColorHistory2.Size = new System.Drawing.Size(36, 33);
@@ -364,7 +364,7 @@
this.btnColorHistory1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnColorHistory1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnColorHistory1.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnColorHistory1.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnColorHistory1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnColorHistory1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnColorHistory1.Location = new System.Drawing.Point(129, 2); this.btnColorHistory1.Location = new System.Drawing.Point(129, 3);
this.btnColorHistory1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnColorHistory1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnColorHistory1.Name = "btnColorHistory1"; this.btnColorHistory1.Name = "btnColorHistory1";
this.btnColorHistory1.Size = new System.Drawing.Size(36, 33); this.btnColorHistory1.Size = new System.Drawing.Size(36, 33);
@@ -377,9 +377,9 @@
this.btnClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnClear.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); this.btnClear.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59)))));
this.btnClear.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnClear.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnClear.Font = new System.Drawing.Font("Cascadia Code", 10.2F); this.btnClear.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnClear.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnClear.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnClear.Location = new System.Drawing.Point(6, 33); this.btnClear.Location = new System.Drawing.Point(6, 30);
this.btnClear.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnClear.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnClear.Name = "btnClear"; this.btnClear.Name = "btnClear";
this.btnClear.Size = new System.Drawing.Size(169, 24); this.btnClear.Size = new System.Drawing.Size(169, 24);
@@ -421,7 +421,7 @@
this.pbxSample.Location = new System.Drawing.Point(6, 166); this.pbxSample.Location = new System.Drawing.Point(6, 166);
this.pbxSample.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.pbxSample.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.pbxSample.Name = "pbxSample"; this.pbxSample.Name = "pbxSample";
this.pbxSample.Size = new System.Drawing.Size(117, 59); this.pbxSample.Size = new System.Drawing.Size(122, 64);
this.pbxSample.TabIndex = 35; this.pbxSample.TabIndex = 35;
this.pbxSample.TabStop = false; this.pbxSample.TabStop = false;
// //
@@ -442,7 +442,7 @@
this.btnEyeDrop.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnEyeDrop.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnEyeDrop.Font = new System.Drawing.Font("Cascadia Code", 10.2F); this.btnEyeDrop.Font = new System.Drawing.Font("Cascadia Code", 10.2F);
this.btnEyeDrop.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnEyeDrop.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnEyeDrop.Location = new System.Drawing.Point(283, 2); this.btnEyeDrop.Location = new System.Drawing.Point(283, 3);
this.btnEyeDrop.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnEyeDrop.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnEyeDrop.Name = "btnEyeDrop"; this.btnEyeDrop.Name = "btnEyeDrop";
this.btnEyeDrop.Size = new System.Drawing.Size(104, 33); this.btnEyeDrop.Size = new System.Drawing.Size(104, 33);
@@ -457,7 +457,7 @@
this.btnRandomColor.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnRandomColor.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnRandomColor.Font = new System.Drawing.Font("Cascadia Code", 10.2F); this.btnRandomColor.Font = new System.Drawing.Font("Cascadia Code", 10.2F);
this.btnRandomColor.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnRandomColor.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnRandomColor.Location = new System.Drawing.Point(393, 2); this.btnRandomColor.Location = new System.Drawing.Point(393, 3);
this.btnRandomColor.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnRandomColor.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnRandomColor.Name = "btnRandomColor"; this.btnRandomColor.Name = "btnRandomColor";
this.btnRandomColor.Size = new System.Drawing.Size(108, 33); this.btnRandomColor.Size = new System.Drawing.Size(108, 33);
@@ -472,7 +472,7 @@
this.btnColorPicker.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnColorPicker.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnColorPicker.Font = new System.Drawing.Font("Cascadia Code", 10.2F); this.btnColorPicker.Font = new System.Drawing.Font("Cascadia Code", 10.2F);
this.btnColorPicker.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnColorPicker.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnColorPicker.Location = new System.Drawing.Point(171, 2); this.btnColorPicker.Location = new System.Drawing.Point(171, 3);
this.btnColorPicker.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnColorPicker.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnColorPicker.Name = "btnColorPicker"; this.btnColorPicker.Name = "btnColorPicker";
this.btnColorPicker.Size = new System.Drawing.Size(106, 33); this.btnColorPicker.Size = new System.Drawing.Size(106, 33);
@@ -485,9 +485,9 @@
// //
this.btnRedo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); this.btnRedo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59)))));
this.btnRedo.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnRedo.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnRedo.Font = new System.Drawing.Font("Cascadia Code", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnRedo.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnRedo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnRedo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnRedo.Location = new System.Drawing.Point(3, 5); this.btnRedo.Location = new System.Drawing.Point(6, 4);
this.btnRedo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnRedo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnRedo.Name = "btnRedo"; this.btnRedo.Name = "btnRedo";
this.btnRedo.Size = new System.Drawing.Size(80, 23); this.btnRedo.Size = new System.Drawing.Size(80, 23);
@@ -500,9 +500,9 @@
// //
this.btnUndo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); this.btnUndo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59)))));
this.btnUndo.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnUndo.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnUndo.Font = new System.Drawing.Font("Cascadia Code", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnUndo.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnUndo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); this.btnUndo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
this.btnUndo.Location = new System.Drawing.Point(92, 5); this.btnUndo.Location = new System.Drawing.Point(95, 4);
this.btnUndo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnUndo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnUndo.Name = "btnUndo"; this.btnUndo.Name = "btnUndo";
this.btnUndo.Size = new System.Drawing.Size(80, 23); this.btnUndo.Size = new System.Drawing.Size(80, 23);

View File

@@ -104,12 +104,16 @@ namespace Paint_2
btnHoveringColor.BackColor = HoveringColor; btnHoveringColor.BackColor = HoveringColor;
List<Color> colorHistory = Project.GetLayerColorHistory(SelectedLayers, 4); List<Color> colorHistory = Project.GetLayerColorHistory(SelectedLayers, 4);
btnColorHistory1.BackColor = colorHistory[0]; btnColorHistory1.BackColor = colorHistory[0];
btnColorHistory1.ForeColor = colorHistory[0]; btnColorHistory1.ForeColor = colorHistory[0];
btnColorHistory2.BackColor = colorHistory[1]; btnColorHistory2.BackColor = colorHistory[1];
btnColorHistory2.ForeColor = colorHistory[1]; btnColorHistory2.ForeColor = colorHistory[1];
btnColorHistory3.BackColor = colorHistory[2]; btnColorHistory3.BackColor = colorHistory[2];
btnColorHistory3.ForeColor = colorHistory[2]; btnColorHistory3.ForeColor = colorHistory[2];
btnColorHistory4.BackColor = colorHistory[3]; btnColorHistory4.BackColor = colorHistory[3];
btnColorHistory4.ForeColor = colorHistory[3]; btnColorHistory4.ForeColor = colorHistory[3];
@@ -139,8 +143,74 @@ namespace Paint_2
{ {
Bitmap map = new Bitmap(size.Width, size.Height); Bitmap map = new Bitmap(size.Width, size.Height);
Graphics gr = Graphics.FromImage(map); Graphics gr = Graphics.FromImage(map);
gr.DrawLine(new Pen(Project.GetCurrentToolColor(SelectedLayers), Project.GetCurrentToolWidth(SelectedLayers)), new Point(0, 0), new Point(size.Width, size.Height));
if (Project.GetCurrentTool(SelectedLayers) != null)
{
PaintTool currentTool = (PaintTool)Project.GetCurrentTool(SelectedLayers).Clone();
//Would have loved to use a switch case but I cant
if (currentTool is Pencil)
{
Pencil pencil = currentTool as Pencil;
pencil.Start(Project.GetCurrentToolColor(SelectedLayers), Project.GetCurrentToolWidth(SelectedLayers));
pencil.Add(new Point(0, size.Height));
pencil.Add(new Point(size.Width, 0));
pencil.Stop();
pencil.Paint(map);
}
else
{
if (currentTool is DotPencil)
{
DotPencil pencil = currentTool as DotPencil;
pencil.Start(Project.GetCurrentToolColor(SelectedLayers), Project.GetCurrentToolWidth(SelectedLayers));
int precision = 5;
for (int i = 0; i <= precision; i++)
{
Point newPoint = new Point(i * (size.Width / precision), size.Height - (i * (size.Height / precision)));
pencil.Add(newPoint);
}
pencil.Stop();
pencil.Paint(map);
}
else
{
if (currentTool is BezierPencil)
{
BezierPencil pencil = currentTool as BezierPencil;
Color paint_tool_color = Project.GetCurrentToolColor(SelectedLayers);
int paint_tool_width = Project.GetCurrentToolWidth(SelectedLayers);
Point p1 = new Point(0 - paint_tool_width / 2, 0 - paint_tool_width / 2);
Point p2 = new Point(0 - paint_tool_width / 2, size.Height + paint_tool_width / 2);
Point p3 = new Point(size.Width / 2 - paint_tool_width / 2,size.Height + paint_tool_width / 2);
Point p4 = new Point(size.Width / 2 - paint_tool_width / 2, 0 - paint_tool_width/2);
Point p5 = new Point(size.Width + paint_tool_width / 2, 0 - paint_tool_width / 2);
Point p6 = new Point(size.Width + paint_tool_width / 2, size.Height + paint_tool_width / 2);
// I KNOW THIS IS HARD CODED BUT ITS ONLY PURPOSE IS TO BE PRETTY so it does'nt matter
pencil.Start(paint_tool_color, paint_tool_width);
pencil.Add(p1);
pencil.Stop();
pencil.Start(paint_tool_color, paint_tool_width);
pencil.Add(p2);
pencil.Stop();
pencil.Start(paint_tool_color, paint_tool_width);
pencil.Add(p3);
pencil.Stop();
pencil.Start(paint_tool_color, paint_tool_width);
pencil.Add(p4);
pencil.Stop();
pencil.Start(paint_tool_color, paint_tool_width);
pencil.Add(p5);
pencil.Stop();
pencil.Start(paint_tool_color, paint_tool_width);
pencil.Add(p6);
pencil.Stop();
pencil.Paint(map);
}
}
}
}
//gr.DrawLine(new Pen(Project.GetCurrentToolColor(SelectedLayers), Project.GetCurrentToolWidth(SelectedLayers)), new Point(0, 0), new Point(size.Width, size.Height));
return map; return map;
} }
private Color GetHoverColor() private Color GetHoverColor()
@@ -191,6 +261,8 @@ namespace Paint_2
{ {
int toolId = lsbTools.SelectedIndex; int toolId = lsbTools.SelectedIndex;
Project.ChangeTool(SelectedLayers, toolId); Project.ChangeTool(SelectedLayers, toolId);
//Yeah that is a little janky but I just want to refresh the tool
nupPencilWidth_ValueChanged(sender,e);
RefreshUi(); RefreshUi();
} }
@@ -244,7 +316,7 @@ namespace Paint_2
{ {
LayersToRemove.Add(layer); LayersToRemove.Add(layer);
} }
for (int id = layersCount -1; id >= 0; id--) for (int id = layersCount - 1; id >= 0; id--)
{ {
if (Project.RemoveLayer(LayersToRemove[id])) if (Project.RemoveLayer(LayersToRemove[id]))
{ {
@@ -253,7 +325,7 @@ namespace Paint_2
else else
{ {
Console.WriteLine("Could not delete the layer"); Console.WriteLine("Could not delete the layer");
} }
} }
DisplayLayers(); DisplayLayers();
RefreshUi(); RefreshUi();
@@ -270,7 +342,7 @@ namespace Paint_2
int Yoffset = 10; int Yoffset = 10;
int Xoffset = 10; int Xoffset = 10;
float fontSize = 10; float fontSize = 10;
Size blocSize = new Size(pnlLayers.Width,pnlLayers.Height/6); Size blocSize = new Size(pnlLayers.Width, pnlLayers.Height / 6);
int blocsCount = 0; int blocsCount = 0;
int btnWidth = (int)(blocSize.Width / 2.7); int btnWidth = (int)(blocSize.Width / 2.7);
int labelWidth = (int)(blocSize.Width / 3.0); int labelWidth = (int)(blocSize.Width / 3.0);
@@ -287,13 +359,13 @@ namespace Paint_2
//LABEL LAYER NAME //LABEL LAYER NAME
Label lblName = new Label(); Label lblName = new Label();
//Style //Style
lblName.Name = "lblLayer"+layer.Id; lblName.Name = "lblLayer" + layer.Id;
lblName.Font = new Font("Arial",fontSize); lblName.Font = new Font("Arial", fontSize);
lblName.AutoSize = false; lblName.AutoSize = false;
lblName.Width = labelWidth; lblName.Width = labelWidth;
lblName.Text = layer.Name; lblName.Text = layer.Name;
lblName.BackColor = Color.Transparent; lblName.BackColor = Color.Transparent;
lblName.Location = new Point(0,blocsCount * blocSize.Height + Yoffset); lblName.Location = new Point(0, blocsCount * blocSize.Height + Yoffset);
//Style //Style
//Behaviour //Behaviour
pnlLayers.Controls.Add(lblName); pnlLayers.Controls.Add(lblName);

View File

@@ -282,6 +282,18 @@ namespace Paint_2
layer.Clear(); layer.Clear();
} }
} }
public PaintTool GetCurrentTool(List<string> selectedLayers)
{
if (Layers.Count == 0 || selectedLayers.Count == 0)
{
return null;
}
else
{
Sketch CurrentLayer = FindSketch(Layers, selectedLayers[0]);
return CurrentLayer.CurrentTool;
}
}
public Color GetCurrentToolColor(List<string> selectedLayers) public Color GetCurrentToolColor(List<string> selectedLayers)
{ {
if (Layers.Count == 0 || selectedLayers.Count == 0) if (Layers.Count == 0 || selectedLayers.Count == 0)