Draft CubicBezCurve/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 26: Line 26:


[[File:Draft_CubicBezCurve_example.png|600px]]
[[File:Draft_CubicBezCurve_example.png|600px]]
{{Caption|Spline définie par trois segments de Bézier cubiques. Chaque courbe cubique de Bézier est définie par quatre points, mais lorsque l'outil est utilisé graphiquement, seuls trois de ces points sont placés: 1-2-3 pour le premier segment, 3-4-5 pour le deuxième segment et 5-6-7 pour le troisième segment. Le quatrième point du chaque segment est défini implicitement. Le dernier point 8 est nécessaire pour terminer l'opération et ferait partie d'un quatrième segment de Bézier si l'opération se poursuivait.}}
<div class="mw-translate-fuzzy">
{{Caption|Courbe de Bézier cubique définie par trois points de control}}
</div>


==Utilisation==
==Utilisation==

Revision as of 08:55, 5 October 2019

Courbe de Bézier cubique Draft

Emplacement du menu
Draft → Outils Bézier → Courbe de Bézier cubique
Ateliers
Atelier Draft, Atelier Arch
Raccourci par défaut
Aucun
Introduit dans la version
0.19
Voir aussi
Filaire Draft, BSpline Draft, Courbe de Bézier Draft

Description

L'outil Courbe de Bézier cubique Draft crée une Courbe de Bézier de troisième degré (quatre points sont nécessaires). C'est l'une des courbes de Bézier les plus couramment utilisées. Cet outil vous permet de créer une grosse spline composée de plusieurs segments de Bézier au 3ème degré, d’une manière similaire à l’outil Bézier d’Inkscape. Une courbe de Bezier de n'importe quel degré peut être créée avec Courbe de Bézier Draft.

Les outils Courbe de Bézier Draft et Courbe de Bézier cubique Draft utilisent points de contrôle pour définir la position et la courbure de la spline. D'autre part, l'outil BSpline Draft spécifie les points exacts par lesquels la courbe passera.

Spline définie par trois segments de Bézier cubiques. Chaque courbe cubique de Bézier est définie par quatre points, mais lorsque l'outil est utilisé graphiquement, seuls trois de ces points sont placés: 1-2-3 pour le premier segment, 3-4-5 pour le deuxième segment et 5-6-7 pour le troisième segment. Le quatrième point du chaque segment est défini implicitement. Le dernier point 8 est nécessaire pour terminer l'opération et ferait partie d'un quatrième segment de Bézier si l'opération se poursuivait.

Utilisation

  1. Appuyez sur le bouton Courbe de Bézier cubique Draft .
  2. Cliquez sur un premier point de la vue 3D et maintenez le pointeur de la souris.
  3. Faites glisser le pointeur vers un autre point de la vue 3D, puis relâchez le pointeur.
  4. Déplacez le pointeur sur un autre point de la vue 3D pour ajuster la courbure de la spline, puis cliquez et maintenez le point appuyé.
  5. Déplacez le pointeur sur un autre point de la vue 3D pour régler la courbure finale de la spline, puis relâchez le pointeur. Cela crée une courbe de Bézier du 3ème degré et continue de dessiner à partir du dernier point.
  6. Répétez le processus de clic, de maintien, de glissement et de relâchement pour ajouter des points et créez d'autres segments de Bézier au 3ème degré.
  7. Appuyez sur Echap ou sur le bouton Fermer pour terminer l'édition.

Note that with this workflow you need two click-hold-release sequences to create a single Bezier curve of third degree.

  • The first click-hold defines the first end point.
  • The first release defines the first control point.
  • The second click-hold defines the second end point, and the general direction of the spline.
  • The second release defines the final curvature of the spline.
  • The second control point is not explicitly given, but is determined from the location of the pointer during the second release.

Note when creating many Bezier segments

  • The second release also correspond to the first control point of the subsequent Bezier curve.
  • This means that the second click-hold was also the first end point of the second Bezier curve.
  • A third click-hold would be the second end point.
  • A third release would define the final curvature of the second curve, and it would also be the first control point of a third curve.

This means that for every two click-hold (c-h) and release (r) sequences, the second sequence is already part of a subsequent curve segment, as indicated in the following graphic:

|c-h -- r -- c-h -- r| 1
            |c-h -- r -- c-h -- r| 2
                        |c-h -- r -- c-h -- r| 3
                                    |c-h -- r -- c-h -- r| 4

How to place the control points exactly

The graphical operation of this tool only allows the user to specify the first control point of the curve when it is being drawn. The second control point can be adjusted after the object is created: double click on the curve object in tree view, or select it and press Edit. Then drag the second control point to the desired position.

In order to choose exactly both end points and both control points, the Python command Draft.makeBezCurve() must be used. See the Scripting section.

Options

See the options in Draft BezCurve.

Propriétés

See the properties in Draft BezCurve.

Script

Voir aussi: Draft API et FreeCAD Script de Base.

Voir Courbe de Bézier Draft pour les informations générales. Un cube de Bézier est créé en passant l'option degree=3 à makeBezCurve().

Pour chaque segment de Bézier cubique, il faut utiliser quatre points, dont les deux points intermédiaires sont les points de contrôle.

  • Si seulement 3 points sont donnés, cela crée un Bézier quadratique à la place.
  • Si seulement 2 points sont donnés, cela crée un Bézier linéaire, c'est-à-dire une ligne droite.
  • Si 5 points sont donnés, les 4 premiers créent un segment de Bézier cubique; les quatrième et cinquième points sont utilisés pour créer une ligne droite.
  • Si 6 points sont donnés, les 4 premiers créent un segment de Bézier cubique; le quatrième et les deux autres points sont utilisés pour créer un segment de Bézier quadratique.
  • Si 7 points sont donnés, les 4 premiers créent un segment de Bézier cubique; le quatrième et les trois autres servent à créer un deuxième segment de Bézier cubique.
  • Autrement dit, chaque fois que cela est possible, le dernier point d’une courbe cubique de Bézier est partagé avec les points suivants.

Examples of Bezier curves produced by using 2, 3, 4, 5, 6, 7, and 8 points. The solid lines indicate cubic Bezier segments; the other lines are quadratic or linear.

Exemple:

import FreeCAD as App
import Draft

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.makeCircle(100, placement=App.Placement(p1, rot), face=False)
c1.Label = "B1_E1"
c2 = Draft.makeCircle(50, placement=App.Placement(p2, rot), face=True)
c2.Label = "B1_c1"
c3 = Draft.makeCircle(50, placement=App.Placement(p3, rot), face=True)
c3.Label = "B1_c2"
c4 = Draft.makeCircle(100, placement=App.Placement(p4, rot), face=False)
c4.Label = "B1_E2"
c5 = Draft.makeCircle(50, placement=App.Placement(p5, rot), face=True)
c5.Label = "B2_c3"
c6 = Draft.makeCircle(50, placement=App.Placement(p6, rot), face=True)
c6.Label = "B2_c4"
c7 = Draft.makeCircle(100, placement=App.Placement(p7, rot), face=False)
c7.Label = "B2_E3"
c8 = Draft.makeCircle(50, placement=App.Placement(p8, rot), face=True)
c8.Label = "B3_c5"
App.ActiveDocument.recompute()

B1 = Draft.makeBezCurve([p1, p2], degree=3)
B1.Label = "B_lin"
B1.ViewObject.DrawStyle = "Dashed"

B2 = Draft.makeBezCurve([p1, p2, p3], degree=3)
B2.Label = "B_quad"
B2.ViewObject.DrawStyle = "Dotted"

B3 = Draft.makeBezCurve([p1, p2, p3, p4], degree=3)
B3.Label = "B_cub"
B3.ViewObject.LineWidth = 4

B4 = Draft.makeBezCurve([p1, p2, p3, p4, p5], degree=3)
B4.Label = "B_cub+lin"
B4.ViewObject.DrawStyle = "Dashed"

B5 = Draft.makeBezCurve([p1, p2, p3, p4, p5, p6], degree=3)
B5.Label = "B_cub+quad"
B5.ViewObject.DrawStyle = "Dotted"

B6 = Draft.makeBezCurve([p1, p2, p3, p4, p5, p6, p7], degree=3)
B6.Label = "B_cub+cub"
B6.ViewObject.LineWidth = 2

B7 = Draft.makeBezCurve([p1, p2, p3, p4, p5, p6, p7, p8], degree=3)
B7.Label = "B_cub+cub+lin"
B7.ViewObject.DrawStyle = "Dashed"
App.ActiveDocument.recompute()