Draft CubicBezCurve/fr: Difference between revisions

From FreeCAD Documentation
mNo edit summary
mNo edit summary
Line 10: Line 10:
}}
}}


<div class="mw-translate-fuzzy">
{{GuiCommand/fr
{{GuiCommand/fr
|Name=Draft CubicBezCurve
|Name=Draft CubicBezCurve
Line 19: Line 18:
|Version=0.19
|Version=0.19
}}
}}
</div>


==Description==
==Description==

Revision as of 10:54, 4 February 2020

Draft Courbe de Bézier cubique

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

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 bouton de la souris enfoncé (1); c'est le premier point final.
  3. Faites glisser le pointeur vers un autre point de la vue 3D et relâchez le bouton de la souris (2); c'est le premier point de contrôle.
  4. Déplacez le pointeur sur un autre point de la vue 3D, puis cliquez et maintenez le bouton de la souris enfoncé sur ce point (3); c'est le deuxième point final.
  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 bouton de la souris (4).
  6. En ce moment, vous avez déjà une courbe de Bézier du 3ème degré. La commande peut être complétée en appuyant sur Echap ou sur le bouton Fermer, ou vous pouvez répéter le processus consistant à cliquer et à maintenir (5), puis à faire glisser et relâcher (6) pour en ajouter d'autres. segments de Bézier.

Notez qu'avec ce flux de travail, vous avez besoin de deux séquences de maintien du clic pour créer une seule courbe de Bézier du troisième degré.

  • Le premier clic de maintien définit le premier point final.
  • La première version définit le premier point de contrôle.
  • Le deuxième clic de maintien définit le deuxième point final et la direction générale de la spline.
  • La deuxième version définit la courbure finale de la spline.
  • Le deuxième point de contrôle n'est pas explicitement indiqué, mais est déterminé à partir de l'emplacement du pointeur lors de la deuxième publication.

Remarque lors de la création de nombreux segments de Bezier

  • Le deuxième relâchement correspond également au premier point de contrôle de la courbe de Bézier suivante.
  • Cela signifie que le deuxième clic maintenu était également le premier point final de la deuxième courbe de Bézier.
  • Un troisième clic maintenu serait le deuxième point final.
  • Un troisième communiqué définirait la courbure finale de la deuxième courbe et constituerait également le premier point de contrôle d'une troisième courbe.

Cela signifie que pour deux séquences de maintien de clic (c-h) et de libération (r), la deuxième séquence fait déjà partie d'un segment de courbe suivant, comme indiqué dans le graphique suivant:

|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

Comment placer les points de contrôle exactement

L’opération graphique de cet outil permet uniquement à l’utilisateur de spécifier le premier point de contrôle de la courbe lors de son tracé. Le deuxième point de contrôle peut être ajusté après la création de l'objet: double-cliquez sur l'objet de la courbe dans la vue arborescente ou sélectionnez-le et appuyez sur Edition. Ensuite, faites glisser le deuxième point de contrôle à la position souhaitée.

Afin de choisir exactement les deux points extrêmes et les deux points de contrôle, la commande Python Draft.makeBezCurve() doit être utilisée. Voir la section Script.

Options

Voir les options dans Courbe de Bézier Draft.

Propriétés

Voir les propriétés de Courbe de Bézier Draft.

Script

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 extrêmes indiquent le passage de la spline et où les deux points intermédiaires sont des points de contrôle.

  • Si seulement 3 points sont donnés, cela crée une courbe de Bézier quadratique, avec un seul point de contrôle.
  • Si seulement 2 points sont donnés, cela crée une courbe de 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 4ème et 5è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 4è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 4ème et les trois autres points sont utilisés pour créer un deuxième segment de Bézier cubique.
  • En général, le dernier point d'un groupe de quatre est partagé avec les trois points suivants au maximum pour créer un autre segment de Bézier.
  • Pour avoir des courbes lisses, sans segment droit, le nombre de points doit être 3n + 1 ou 3nn 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

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()