|
Emplacement du menu |
---|
Draft : Formes → Outils de Bézier → Courbe de Bézier cubique BIM : Formes 2D → Courbe de Bézier cubique |
Ateliers |
Draft, BIM |
Raccourci par défaut |
Aucun |
Introduit dans la version |
0.19 |
Voir aussi |
Draft Courbe de Bézier, Draft B-spline |
La commande Courbe de Bézier cubique crée une Courbe de Bézier du troisième degré (quatre points requis).
La courbe de Bézier est l'une des courbes les plus utilisées en infographie. Cette commande vous permet de créer une courbe continue composée de plusieurs segments de Bézier du 3e degré, d'une manière similaire à l'outil Bézier de Inkscape. Une courbe de Bézier générale de n'importe quel degré peut être créée avec la commande Draft Courbe de Bézier.
Les commandes Draft Courbe de Bézier et Draft Courbe de Bézier cubique utilisent des points de contrôle pour définir la position et la courbure de la spline. La commande Draft B-spline, quant à elle, spécifie les points exacts par lesquels la courbe passera.
Spline constituée de trois segments cubiques de Bézier. Le premier segment est défini par quatre points. Les segments suivants réutilisent deux points du segment précédent et ne nécessitent donc que deux points supplémentaires.
Voir aussi : Draft La barre, Draft Aimantation et Draft Contrainte.
Voir Draft Courbe de Bézier.
Voir Draft Courbe de Bézier.
Voir aussi : Autogenerated API documentation et FreeCAD Débuter avec les scripts.
Voir Draft Courbe de Bézier pour des informations générales. Une courbe de Bézier cubique est créée en passant l'option degré=3
à makeBezCurve()
.
Pour chaque segment de Bézier cubique, il faut utiliser quatre points dont les deux points extrêmes indiquent le passage de la spline et où les deux points intermédiaires sont des points de contrôle.
3n + 1
ou 3n
où n
est le nombre de segments, pour n >= 1
.Exemples de courbes de Bézier produites en utilisant 2, 3, 4, 5, 6, 7 et 8 points. Les lignes continues indiquent les segments de Bézier cubiques. Les autres lignes sont quadratiques ou linéaires.
Exemple:
import FreeCAD as App
import Draft
doc = App.newDocument()
p1 = App.Vector(-3500, 0, 0)
p2 = App.Vector(-3000, 2000, 0)
p3 = App.Vector(-1100, 2000, 0)
p4 = App.Vector(0, 0, 0)
p5 = App.Vector(1500, -2000, 0)
p6 = App.Vector(3000, -1500, 0)
p7 = App.Vector(5000, 0, 0)
p8 = App.Vector(6000, 1500, 0)
rot = App.Rotation()
c1 = Draft.make_circle(100, placement=App.Placement(p1, rot), face=False)
c1.Label = "B1_E1"
c2 = Draft.make_circle(50, placement=App.Placement(p2, rot), face=True)
c2.Label = "B1_c1"
c3 = Draft.make_circle(50, placement=App.Placement(p3, rot), face=True)
c3.Label = "B1_c2"
c4 = Draft.make_circle(100, placement=App.Placement(p4, rot), face=False)
c4.Label = "B1_E2"
c5 = Draft.make_circle(50, placement=App.Placement(p5, rot), face=True)
c5.Label = "B2_c3"
c6 = Draft.make_circle(50, placement=App.Placement(p6, rot), face=True)
c6.Label = "B2_c4"
c7 = Draft.make_circle(100, placement=App.Placement(p7, rot), face=False)
c7.Label = "B2_E3"
c8 = Draft.make_circle(50, placement=App.Placement(p8, rot), face=True)
c8.Label = "B3_c5"
doc.recompute()
B1 = Draft.make_bezcurve([p1, p2], degree=3)
B1.Label = "B_lin"
B1.ViewObject.DrawStyle = "Dashed"
B2 = Draft.make_bezcurve([p1, p2, p3], degree=3)
B2.Label = "B_quad"
B2.ViewObject.DrawStyle = "Dotted"
B3 = Draft.make_bezcurve([p1, p2, p3, p4], degree=3)
B3.Label = "B_cub"
B3.ViewObject.LineWidth = 4
B4 = Draft.make_bezcurve([p1, p2, p3, p4, p5], degree=3)
B4.Label = "B_cub+lin"
B4.ViewObject.DrawStyle = "Dashed"
B5 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6], degree=3)
B5.Label = "B_cub+quad"
B5.ViewObject.DrawStyle = "Dotted"
B6 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7], degree=3)
B6.Label = "B_cub+cub"
B6.ViewObject.LineWidth = 2
B7 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7, p8], degree=3)
B7.Label = "B_cub+cub+lin"
B7.ViewObject.DrawStyle = "Dashed"
doc.recompute()