bonhomeExamJanvier/Bonhomme02/Peau.cs

124 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Bonhomme02
{
class Peau : BaseDessin
{
Vecteur epaisseur;
Vecteur longueur;
public Peau() : base()
{
}
public Peau(PictureBox hebergeur) : base(hebergeur)
{
}
public Peau(PictureBox hebergeur, int xy) : base(hebergeur, xy)
{
}
public Peau(PictureBox hebergeur, int x, int y, double lg, double ep, double angle) : base(hebergeur,x, y)
{
InitVecteurs(lg, ep, angle);
}
public Peau(int x, int y) : base(x, y)
{
}
public Peau(PictureBox hebergeur, int xy, Color crayon) : base(hebergeur, xy, crayon)
{
}
public Peau(PictureBox hebergeur, int x, int y, Color crayon) : base(hebergeur, x, y, crayon)
{
}
#region accesseur
public Point CIG{ get{ return base.coordonnee - epaisseur; }}
public Point CID{ get{ return base.coordonnee + epaisseur; }}
public Point CSG{ get{ return (base.coordonnee - epaisseur) + longueur; }}
public Point CSD{ get{ return (base.coordonnee + epaisseur) + longueur; }}
#endregion
#region methode
private void InitVecteurs(double lg, double ep, double angle)
{
this.longueur = new Vecteur(lg, angle);
this.epaisseur = new Vecteur(ep, ref this.longueur, true);
}
public override void Afficher(IntPtr handle)
{
if(base.Visible)
{
try
{
Graphics gr = Graphics.FromHwnd(handle);
Point[] l = new Point[4] { CIG, CID, CSD, CSG };
if (base.Remplir || 1==1)
{
try
{
gr.FillPolygon(new SolidBrush(Color.Blue), l);
//gr.FillPolygon
}
catch
{
}
}
gr.DrawPolygon(new Pen(Brushes.Black), l);
}
catch
{
}
}
}
/*public override public void Afficher(IntPtr handle, float angle)
{
this.angleRotation = angle;
if (visible)
{
Graphics gr = Graphics.FromHwnd(handle);
Point[] l = new Point[4] { CSG, CSD, CID, CIG };
if (remplir)
{
gr.FillClosedCurve(new SolidBrush(fond), l);
}
gr.DrawClosedCurve(new Pen(contour, eppaisseurContour), l);
}
}*/
public override void Cacher(IntPtr handle)
{
try
{
if (base.Visible && 1 == 1)
{
Graphics gr = Graphics.FromHwnd(handle);
Point[] l = new Point[4] { CSG, CSD, CID, CIG };
if (base.Remplir)
{
gr.FillClosedCurve(new SolidBrush(base.Fond), l);
}
gr.DrawClosedCurve(new Pen(Brushes.Black), l);
}
}
catch
{
}
}
#endregion
}
}