Draft: Curva di Bézier cubica

From FreeCAD Documentation
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Draft CubicBezCurve and the translation is 100% complete.

Curva di Bézier cubica

Posizione nel menu
Drafting → Strumenti Bezier → Curva di Bézier cubica
Ambiente
Draft, Arch
Avvio veloce
Nessuno
Introdotto nella versione
-
Vedere anche
Curva di Bézier, BSpline

Descrizione

Il comando Curva di Bézier cubica crea una curva di Bézier di terzo grado (quattro punti richiesti).

La curva di Bézier è una delle curve più utilizzate nella computer grafica. Questo comando consente di creare una spline continua composta da diversi segmenti Bézier di 3° grado, in modo simile allo strumento Bézier in [1]. Una curva di Bézier generale di qualsiasi grado può essere creata con il comando Curva di Bézier.

I comandi Curva di Bézier e Curva di Bézier cubica utilizzano punti di controllo per definire la posizione e la curvatura della spline. Il comando BSpline, invece, specifica i punti esatti attraverso i quali passerà la curva.

Spline composta da tre segmenti cubici di Bézier. Il primo segmento è definito da quattro punti. I segmenti successivi riutilizzano due punti del segmento precedente e pertanto richiedono solo due punti aggiuntivi.

Utilizzo

Vedere anche: Barra di Draft, Aggancio e Vincolare.

  1. Esistono diversi modi per invocare il comando:
    • Premere il pulsante Curva di Bézier cubica.
    • Selezionare l'opzione Drafting → Strumenti Bézier → Curva di Bézier cubica dal menu.
  2. Si apre il pannello delle attività Curva di Bézier cubica. Vedere Opzioni per maggiori informazioni.
  3. Non è possibile inserire i punti tramite il pannello delle attività.
  4. Per i seguenti Modelli di navigazione con mouse è necessario tenere premuto un tasto della tastiera:
    • Se si sta utilizzando Navigazione OpenInventor, il tasto Ctrl deve essere tenuto premuto per tutta la durata del comando.
    • Se si sta utilizzando Navigazione Gesture il tasto Alt deve essere tenuto premuto per ogni sequenza click-hold-release, ma è anche possibile tenere premuto questo tasto per tutta la durata del comando.
  5. Selezionare il primo punto nella Vista 3D e tenere premuto il pulsante del mouse (1), questo è il primo punto finale.
  6. Trascinare il puntatore su un altro punto nella Vista 3D e rilasciare il pulsante del mouse (2), questo è il primo punto di controllo.
  7. Spostare il puntatore su un altro punto nella Vista 3D, selezionare questo punto e tenere premuto il pulsante del mouse (3), questo è il secondo punto finale.
  8. Spostare il puntatore su un altro punto nella Vista 3D per regolare la curvatura finale del segmento e rilasciare il pulsante del mouse (4), questo è il secondo punto di controllo.
  9. Ora si ha una curva di Bézier di 3° grado.
  10. Facoltativamente ripetere il processo di clic e tenere premuto (5) e trascinare e rilasciare (6) per aggiungere più segmenti.
  11. Ogni segmento successivo utilizzerà rispettivamente il secondo punto finale e il secondo punto di controllo del segmento precedente come primo punto finale e primo punto di controllo.
  12. Premere Esc o il pulsante Chiudi per terminare il comando.

Opzioni

Vedere Curva di Bézier.

Note

  • Una Curva di Bézier cubica può essere modificata con il comando Modifica.

Proprietà

Vedere Curva di Bézier.

Script

Vedere anche: Autogenerated API documentation e Script di base per FreeCAD.

Per informazioni di carattere generale vedere Curva di Bézier. Una Bézier cubica viene creata passando l'opzione degree=3 a makeBezCurve().

Per ogni segmento di Bézier cubica devono essere utilizzati quattro punti, di cui i due punti estremi indicano dove passa la spline e i due punti intermedi sono punti di controllo.

  • Se vengono assegnati solo 3 punti, viene invece creata una Bézier quadratica, con un solo punto di controllo..
  • Se vengono assegnati solo 2 punti, viene creata una Bézier lineare, ovvero una linea retta.
  • Se vengono assegnati 5 punti, i primi 4 creano un segmento di Béezier cubico; il quarto e il quinto punto vengono utilizzati per creare una linea retta.
  • Se vengono assegnati 6 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri due punti vengono utilizzati per creare un segmento quadratico di Bézier.
  • Se vengono assegnati 7 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri tre punti sono usati per creare un secondo segmento cubico di Bézier.
  • In generale, l'ultimo punto in un gruppo di quattro è condiviso al massimo con i seguenti tre punti per creare un altro segmento di Bézier.
  • * Per avere curve morbide, senza segmenti diritti, il numero di punti dovrebbe essere 3n + 1 o 3n, dove n è il numero di segmenti, per n >= 1.

Esempi di curve di Bézier prodotte utilizzando 2, 3, 4, 5, 6, 7 e 8 punti. Le linee continue indicano segmenti cubici di Bézier; le altre linee sono quadratiche o lineari.

Esempio:

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