J'ai posté une question précédente sur la génération d'une courbe de Bézier basée uniquement sur les points de début et de fin, et j'ai pu grâce aux réponses créer une courbe de Bézier en utilisant les informations que j'ai.Comment retourner tous les points le long d'une courbe de Bézier?
Ceci est le code qui me permet de dessiner les types de courbes que je veux sur un formulaire.
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Random rnd = new Random();
Point startp = new Point(rnd.Next(0, this.Width), rnd.Next(0, this.Height));
Point endp = new Point(rnd.Next(0, this.Width), rnd.Next(0, this.Height));
int xMod = 0;
int yMod = 0;
if (startp.X > endp.X) {
xMod = -1;
} else {
xMod = 1;
}
if (startp.Y > endp.Y) {
yMod = 1;
} else {
yMod = -1;
}
Point control1p = new Point(endp.X + (rnd.Next(20, 50) * xMod), endp.Y + (rnd.Next(20, 50) * yMod));
Point control2p = new Point(endp.X + (rnd.Next(5, 20) * xMod), endp.Y + (rnd.Next(5, 20) * yMod));
Point[] pts = {
startp,
control1p,
control2p,
endp
};
Pen dashed_pen = new Pen(Color.Black, 0);
dashed_pen.DashStyle = Drawing2D.DashStyle.Dash;
for (int i = 0; i <= 2; i++) {
e.Graphics.DrawLine(dashed_pen, pts(i), pts(i + 1));
}
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality;
Pen bez_pen = new Pen(Color.Black, 3);
e.Graphics.DrawBezier(bez_pen, pts(0), pts(1), pts(2), pts(3))
}
Y at-il un moyen, ou quelqu'un peut-il m'aider à retourner tous les points qui forment la courbe? Je voudrais que chaque point d'une courbe calculé à partir de ces points soit retourné dans un tableau de points, mais je n'ai aucune chance de le trouver, et je n'ai pas été capable de trouver une solution similaire sur stackoverflow ou google in général.
Merci.
Veuillez ne pas utiliser d'étiquettes dans l'en-tête. –