DE4244462A1 - Verfahren zur Generierung von ebenen technischen Kurven oder Konturen - Google Patents
Verfahren zur Generierung von ebenen technischen Kurven oder KonturenInfo
- Publication number
- DE4244462A1 DE4244462A1 DE4244462A DE4244462A DE4244462A1 DE 4244462 A1 DE4244462 A1 DE 4244462A1 DE 4244462 A DE4244462 A DE 4244462A DE 4244462 A DE4244462 A DE 4244462A DE 4244462 A1 DE4244462 A1 DE 4244462A1
- Authority
- DE
- Germany
- Prior art keywords
- bezier
- curve
- points
- point
- polynomial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
Die Erfindung bezieht sich auf ein Verfahren zur Generierung von ebenen technischen
Kurven oder Konturen für technische Geräte, in denen ebene gekrümmte geometrische
Objekte in besonders großem Umfang, in sehr hoher Auflösung und/oder unter Realtime-
Anforderungen dargestellt oder generiert werden müssen. Die erfindungsgemäße Lösung
ermöglicht die schnelle und exakte Generierung digitaler Approximationen für spezielle
ebene Kurven im Bereich der grafischen Datenverarbeitung. Die betrachteten Splines
werden in grafischen Entwurfssystemen eingesetzt als effiziente und flexible Mittel zur
Beschreibung gekrümmter linienhafter und flächenhafter geometrischer Objekte und zur
angenäherten Beschreibung mathematisch komplizierter Kurven. Digitale Approximationen
(Diskretisierungen) der Splines werden benötigt für die grafische Darstellung der
durch Splines beschriebenen Objekte in einem quadratischen Raster sowie zur Ansteuerung
von technischen Geräten, die durch Splines beschriebene Objekte in einem quadratischen
Raster belichten oder in anderer Form zur Generierung von Kurven, Konturen
oder Flächen umsetzen. Derartige Anwendungen sind etwa Laserbelichter (Drucker,
Plotter etc.), Mikrolithografie mit Elektronen- oder Röntgenstrahlen, Mikrosystemtechnik,
binäre und integrierte Optik, Herstellung von Lichtwellenleitern, 2-D-Robotersteuerungen,
Drucktechnik und die Visualisierung von Entwurfsdaten.
Grafische Entwurfssysteme sind in vielen technischen Bereichen ein unabdingbares
Werkzeug zur Produktentwicklung und zur Erzeugung von Fertigungsdaten. Auf klassischen
Gebieten wie Maschinen-, Automobil-, Schiff- und Flugzeugbau oder zur Entwicklung
mikroelektronischer Schaltkreise existieren leistungsfähige, komplexe, z. T.
hochautomatisierte Entwurfssysteme. Für sie ist kennzeichnend, daß sie zur Modellierung
von gekrümmten ebenen oder räumlichen Kurven und Flächen Splines verwenden,
bevorzugt parametrische kubische Splines.
Splines verbinden die Vorteile von Flexiblität und Universalität als Entwurfshilfsmittel
mit einfacher rechentechnischer Handhabbarkeit und geringem Datenaufwand zur
Beschreibung auch komplizierterer Objekte. Während bis vor wenigen Jahren ausschließlich
polynomiale Splines eingesetzt wurden, bieten jetzt rationale Splines größeren
Entwurfsspielraum bei nur unwesentlich gesteigertem Rechenaufwand und finden Aufnahme
sowohl in neueren Entwurfssystemen als auch als geometrische Primitive in Standards
der Computergrafik. Ein weiterer Vorteil rationaler Splines besteht darin, daß sie
quadratische Kurven (Kreisbögen, Ellipsen, Parabeln, Hyperbeln) exakt darstellen.
Zur Visualisierung der Entwurfsergebnisse und zur Ansteuerung technischer Gerät, die
die Entwürfe in industrieller Produkte umsetzten, werden in der Regel koordinatengesteuerte
Einrichtungen mit einer maximalen diskreten Koordinatenauflösung verwendet.
Daher können nur Punkte eines quadratischen Rasters codiert und angesteuert werden,
und es entsteht die Aufgabe, digitale Approximationen für durch Splines beschriebene
Kurven und Konturen zu generieren. Dies ist sowohl ein rechenzeitaufwendiger als
auch ein vom Ergebns her datenintensiver Vorgang.
Mit der Entwicklung der Mikrostrukturtechnik treten technische Anwendungen auf, für
die es noch keine spezialisierten grafischen Entwurfssysteme gibt und die an die Digitalisierung
erhöhte Anforderungen stellen. Bei wesentlich gesteigerter Auflösung wachsen
die zu erzeugenden Rasterpunktmengen und damit die notwendigen Rechenzeiten stark
an. Es werden Entwürfe notwendig, bei denen eine vollständige Digitalisierung auf
unvertretbar hohe Datenmenge führen würde, bei denen daher die Digitalisierung parallel
zum technischen Steuervorgang und somit unter Echtzeitbedingungen erfolgen muß.
Die Anforderungen an die Genauigkeit der erzeugten Konturen wachsen.
Insgesamt ist der Stand der Entwurfstechnik auf diesem und ähnlichen Gebieten dadurch
gekennzeichnet, daß die Probleme der Digitalisierung kubischer Splines deren Einsatz
zur Modellierung gekrümmter geometrischer Objekte bisher behinderten. Statt dessen
werden Kreis- oder Ellipsenbögen verwendet, für deren exakte Digitalisierung schnelle
und einfache Verfahren existieren, oder kompliziertere Bögen werden durch
(datenaufwendige und ungenaue) Polygonzüge angenähert. In manchen Systemen wird
die erforderliche Rechenzeit dadurch gesenkt, daß ausschließlich polynominale quadratische
Splines genutzt werden können.
Zweckmäßigerweise können verschiedene gebräuchliche Klassen von Splines zur Digitalisierung
durch einfache Transformationen in Bezierkurven überführt werden. Nach
dem Stand der Technik werden zur Berechnung einzelner Kurvenpunkte einer Bezierkurve
(x(t), y(t)) der Algorithmus von de Casteljau oder ein dem Horner-Schema verwandtes
Verfahren eingesetzt [G. Farin: Curves und Surfaces for CAGD, Academic
Press 1990]. Die digitale Approximation einer Kurve wird zusammengesetzt aus den
digitalen Approximationen der zwischen berechneten Kurvenpunkten liegenden Strecken.
Dieses Verfahren weist drei Nachteile auf, die insbesondere bei Anwendungen in innovativen
technischen Bereichen von Bedeutung sind:
- 1. Anzahl und Zeitbedarf der Rechenschritte zur Berechnung eines Kurvenpunktes sind relativ hoch, speziell bei rationalen (nichtpolynomialen) Splines.
- 2. Die Schrittweite des Parameters t, mit der einzelne Kurvenpunkte berechnet werden, muß in Bereichen großer Krümmung oder starker Koordinatenänderung einer Kurve feiner gewählt werden als in anderen Bereichen. Diese Adaptierung erfordert zusätzlichen Aufwand. Verzichtet man darauf, treten entweder Effizienzverluste oder Genauigkeitsverluste ein.
- 3. Es kann nicht garantiert werden, daß jeder erzeugte Rasterpunkt einen Abstand parallel zu den Koordinatenachsen kleiner oder gleich der halben Rasterschrittweite von der exakten Splinekurve hat, auch nicht bei extrem feiner Schrittweite des Parameters t. Ein exaktes Verfahren kann diesen Maximalfehler garantieren.
Eine rekursive Anwendung des Algorithmus von de Castaljau, die den dritten Nachteil
vermeidet, wurde in [D. E. Knuth: Computers & Typesetting; D. Addison Wesley 1986]
angegeben. Sie ist allerdings sehr rechenzeitaufwendig, da in ungünstigen Fällen die Anzahl
der auf komplizierte Weise zu berechnenden Kurvenpunkte vergleichbar mit der Anzahl
der zu erzeugenden Rasterpunkte ist.
In der Veröffentlichung [Knuth] wurde auch die sog. Oktantenteilung beschrieben. Sie
vereinfacht das Verfahren zur Generierung eines Splinebogens, indem sie eine Splinekurve
in Abschnitte unterteilt - an den Maxima und Minima von x(t) bzw. y(t) sowie an
denjenigen Punkten, in denen der Anstieg der Tangente an die Kurve +1 oder -1 beträgt.
Die Generierung der einzelnen Abschnitte wird dann auf die Generierung eines Bogens in
Standardlage zurückgeführt. Diese Verfahrensweise wird in der hier vorgeschlagenen
Neuerung übernommen, allerdings wird zur Generierung nicht von der parametrischen
Bezierkurve ausgegangen, sondern diese wird hierzu in eine implizite kubische Kurve
f(x, y) = 0 mit einem kubischen Polynom f transformiert.
In dem in U.S. Patent 47 89 954 beschriebenen ähnlichen Verfahren zur digitalen Approximation
einer impliziten quadratischen Kurve F(x, y) = 0 wird dagegen bei der Generierung
jedes einzelnen Rasterpunktes überprüft, ob in der Kurvenverfolgung ein
Oktantenwechsel und damit eine Änderung der Rechenvorschrift erforderlich ist. Die
dafür notwendigen Rechenschritte werden im hier vorgeschlagenen Verfahren außerhalb
der Schleife zur Bogengenerierung und nur einmalig durchgeführt, wobei sich die
angestrebte Generierung von Bögen in hoher Auflösung erheblich beschleunigt.
Das im obengenannten Patent beschriebene Verfahren ist in der Lage, eine quadratische
Kurve in einem Zug zu erzeugen, da ein Oktantenwechsel automatisch erkannt und in
den Ablauf integriert wird. Um die Rechenoperationen dabei einfach zu halten, wird dieser
Vorteil jedoch mit dem Nachteil erkauft, daß der Approximationsfehler eines generierten
Rasterpunktes einen ganzen Rasterschritt, also das Zweifache des garantierbaren
Maximalfehlers betragen kann.
Der im Patentanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, ein Verfahren
zur Generierung von ebenen technischen Kurven oder Konturen zur Darstellung
von technischen Bildern anzugeben, das mittels Digitalisierung von parametrischen
polynomialen und rationalen kubischen Bezierkurven in der x-y-Ebene aufeinanderfolgende
Rasterpunkte mit möglichst wenigen einfachen Rechenoperationen erzeugt.
Darüber hinaus soll es den kleinstmöglichen Fehler der erzeugten Rasterpunkte garantieren
und die Probleme der passenden Schrittweitenwahl bei der Berechnung von Kurvenpunkten
vermeiden. Weiterhin soll das vorgeschlagene Verfahren den Rechenaufwand
zur Vorbereitung der Generierung einzelner Bögen möglichst gering halten.
Dieses Problem wird dadurch gelöst, daß zur Digitalisierung parametrischer, rationaler
oder polynomialer kubischer Bezierkurven der Form
mit den Kontrollpunkten | |
Xi = (xi, yi) (0 < = i < = 3), | |
den Gewichten | p, q < 0, |
und dem Parameter | t mit 0 < = t < = 1 |
diese in Oktantenbögen, die getrennt erzeugt werden, zerlegt werden, derart, daß die
Grenzen der Oktantenbögen durch die Parameter t an den Punkten der Kurve bestimmt
werden, wo diese den Anstieg 0, ∞, 1 oder -1 aufweist, daß anschließend die Kurven zur
Befreiung von der Parametrisierung in eine implizite Form f(x, y) = 0 transformiert
werden, daß eine zusätzliche Kurventeilung der Bezierkurve an den Stellen erfolgt, an
denen f(x, y) = 0 eine Selbstüberschneidung besitzt und danach eine Bestimmung der
Koordinaten aller Teilungspunkte aus den entsprechenden Parameterwerten erfolgt,
wobei die Teilungspunkte zusammen mit den Anfangs- und Endpunkten der ursprünglichen
Kurve die Anfangs- und Endpunkte aller Einzelbögen bilden, daß alle diese Bögen
durch Spiegelungen an einer oder mehreren der drei Achsen x = 0, y = 0 oder x = y in die
Standardlage gebracht werden, daß die Generierung der digitalen Approximation mit der
Bestimmung des zum Startpunkt des Bogens benachbarten Rasterpunktes (x₀, y₀) beginnt,
wobei durch die Oktantenteilung und die Spiegelungen gesichert ist, daß der Anstieg
des Bogens stets zwischen 0 und 1 liegt, daß anschließend die Berechnung der
Funktion f(x₀+1, y₀+½) erfolgt, wobei diese Berechnung und die Auswertung des
Vorzeichens von f in (x₀+1, y₀+½) die Entscheidung ermöglicht, zwischen welchem
Rasterpunkt und Testpunkt der Bogen verläuft und daß anschließend dieser Rasterpunkt
den Ausgangspunkt für den nächsten Schritt bis zum Erreichen des Endpunktes des
Bogens bildet.
Ausgangspunkt des erfindungsgemäßen Verfahrens ist die Standardform einer rationalen
kubischen Bezierkurve
mit den Kontrollpunkten | |
Xi = (xi, yi) (0 < = i < = 3), | |
den Gewichten | p, q < 0, |
und dem Parameter | t mit 0 < = t < = 1. |
Falls p = q = 1, wird das Nennerpolynom identisch 1 und die Bezierkurve ist polynomial.
Von der Standardform abweichende Bezierkurven, bei denen die Kontrollpunkte
X₀ oder X₃ mit von 1 verschiedenen Gewichten versehen sind, können durch
eine einfache Parametertranformation in die Standardform überführt werden.
Für die schnelle Generierung der Rasterpunkte ist es erforderlich, die Kurve in sogenannte
Oktantenbögen zu zerlegen und diese getrennt zu erzeugen. Dazu werden diejenigen
Parameterwerte t ermittelt, bei denen die Kurve eine waagerechte oder senkrechte
Tangente besitzt bzw. eine Tangente mit dem Anstieg +1 oder -1. Das geschieht durch
die Lösung von 4 Polynomgleichungen 4. Grades, die im Parameterintervall [0, 1] jeweils
höchstens zwei Lösungen besitzen. Im vorgschlagenen Verfahren werden die Polynome
4. Grades als Bezierfunktionen dargestellt und durch ein schnelles geometrisches Verfahren
rekursiv ihre Nullstellen bestimmt.
Von der Parametrisierung befreit man sich durch den Übergang zu einer parameterlosen
impliziten Form f(x, y) = 0 mit einem in x und y kubischen Polynom f. Die Bezout-
Resultante, eine dreireihige Determinante, deren Elemente lineare Polynome in x und y
sind, liefert diese Darstellung. Aus ihr lassen sich die Koeffizienten von f leicht gewinnen,
indem passend gewählte Koordinatenpaare in die Kurvengleichung eingesetzt
werden und das entstehende homogene lineare Gleichungssystem gelöst wird.
Die implizite Kurvengleichung setzt die gegebene Bezierkurve in der ganzen x-y-Ebene
fort. Aus algorithmischen Gründen muß eine zusätzliche Kurventeilung an den Stellen
der Bezierkurve erfolgen, an denen f = 0 eine Selbstüberschneidung besitzt, auch wenn
die ursprüngliche Bezierkurve diese nicht aufweist. Die zugehörigen Parameterwerte
werden aus der Bezierform problemlos über das Lösen einer quadratischen Gleichung
berechnet.
Aus den Parameterwerten aller Teilungspunkte werden die Koordinaten der Teilungspunkte
bestimmt. Sie bilden zusammen mit dem Anfangs- und Endpunkt der ursprünglichen
Kurve die Anfangs- und Endpunkte aller Einzelbögen. Jeder dieser Bögen wird
durch eine Auswahl aus den drei Transformationen Spiegelung an der Geraden x = 0,
an der Geraden y = 0 und an der Geraden x = y in die Standardlage gebracht. Sie ist
dadurch gekennzeichnet, daß der Richtungsvektor (dx, dy) vom Anfangspunkt des
Bogens zum Endpunkt positive Koordinaten besitzt und daß dx < = dy. Durch eine
eventuelle Negation des transformierten Polynoms f wird gewährleistet, daß Punkte
unterhalb des Bogens beim Einsetzen in die Kurvengleichung positive Werte liefern.
Die Generierung der digitalen Approximation beginnt mit der Bestimmung des zum
Startpunkt des Bogens benachbarten Rasterpunktes (x₀, y₀). Durch die Oktantenteilung
und die durchgeführte Transformation ist gesichert, daß der Anstieg des Bogens an jeder
Stelle zwischen 0 und 1 liegt. Damit kommen zum Abszissenwert x₀+1 nur die Punkte
(x₀+1, y₀) und (x₀+1, y₀+1) als Rasterpunkte mit minimalem Abstand zur Kurve in
Frage. Die Berechnung von f(x₀+1, y₀+½) und die Auswertung des Vorzeichens
von f in diesem Testpunkt erlaubt die Entscheidung, zwischen welchem Rasterpunkt und
dem Testpunkt der Bogen verläuft. Dieser Rasterpunkt ist nun Ausgangspunkt für den
nächsten Schritt usw. bis der Endpunkt des Bogens erreicht ist.
Zusätzlich zu dem Funktionswert im Testpunkt sind 2 Korrekturwerte erster Ordnung
für den Funktionswert und drei Korrekturwerte zweiter Ordnung für die Korrekturen
erster Ordnung zu berechnen. Zusammen mit vier konstanten Korrekturwerten dritter
Ordnung ermöglichen sie es, alle verwendeten Parameter durch lediglich 6 Additionen je
nach der getroffenen Entscheidung für den Übergang zum nächsten Testpunkt inkrementell
zu aktualisieren.
Durch die Entscheidungen, wann in dem digitalisierten Bogen jeweils nur eine Koordinate
oder beide gleichzeitig zu inkrementieren sind, wird die digitale Approximation
vollständig beschrieben. Für die Weiterverarbeitung der Daten ist lediglich eine Rücktransformation
des Bogenanfangspunktes und eine Uminterpretation der Koordinatenschritte
notwendig.
Es sei eine ebene kubische rationale Bezierkurve in Standardform
zu digitalisieren. Beim Durchlauf durch die Kurve für wachsende Parameterwerte t
kann sich in Analogie zum Durchlauf eines Kreisbogens in der Regel mehrfach der
durchlaufene Oktant des Tangentialvektors (x′(t), y′(t)) an die Kurve ändern. Zwischen
den Wechseln, innerhalb eines sogenannten Oktantenbogens, besitzt die digitalisierte
Kurve eine eindeutige Fortschreitrichtung (x- oder y-Richtung), einen bestimmten
Durchlaufsinn (in Richtung wachsender oder fallender Koordinaten ), und die Zuwächse
von Rasterpunkt zu Rasterpunkt orthogonal zur Fortschreitrichtung besitzen ein festes
Vorzeichen (positiv oder negativ). Die 8 Oktanten können folgendermaßen charakterisiert
werden:
Die Oktantenwechsel treten auf den Stellen t mit x′(t) = 0, y′(t) = 0 und x′(t) = y′(t)
bzw. x′(t) = -y′(t), an denen die Kurve Extremwerte in x oder y oder den
Anstieg +1 bzw. -1 besitzt.
Jede der Funktionen x′(t), y′(t), (x(t)-y(t))′ hat ausgehend von den rationalen
Koordinatengleichungen die Form
wobei
u(t) = a₀ (1-t)³+3a₁ p t(1-t)²+3a₂ q t² (1-t)+a₃t³
eine kubische Bezierfunktion und v(t) den Nenner der Gleichung der ursprünglichen
Bezierkurve bezeichnet.
Die Nullstellen einer derartigen Funktion sind aus den Nullstellen des Zählers bestimmbar.
Der Nenner ist wegen p, q < 0 stets größer Null. Der Zähler einer Ableitungsfunktion
ist formal ein Polynom 5. Grades, da jedoch der Koeffizient von t⁵ unabhängig
von der Wahl der Ordinaten ai und der Gewichte p, q identisch verschwindet, ist
lediglich eine Gleichung 4. Grades zu lösen. Man kann voraussetzen, daß die betrachteten
Gleichungen im Intervall [0,1] maximal 2 Lösungen besitzen, da eine rationale
Bezierkurve auf ihrem Parameterintervall keinen qualitativ anderen Verlauf hat als die
entsprechende polynomiale mit den Gewichten p = q = 1, bei der unter den getroffenen
Voraussetzungen die Ableitungen nach t quadratische Polynome sind.
Für eine schnelle Lösung der Gleichung u′v-uv′ = 0 im Intervall [0,1] wird ihre linke
Seite als eine polynomiale Bezierfunktion vom Grad 4
B(b₀,b₁,b₂,b₃,b₄;t) = b₀ (1-t)⁴+4 b₁ t(1-t)³+6 b₂t²(1-t)²+4 b₃ t³(1-t)+b₄t⁴
dargestellt. Dabei gelten (bis auf einen konstanten Faktor) folgende Formeln
b₀ = 2 p (a₁ - a₀),
b₁ = q (a₂ - a₀).
b₂ = (a₃ - a₀)/3+p q (a₂ - a₁),
b₃ = p (a₃ - a₁),
b₄ = 2 q (a₃ - a₂).
b₁ = q (a₂ - a₀).
b₂ = (a₃ - a₀)/3+p q (a₂ - a₁),
b₃ = p (a₃ - a₁),
b₄ = 2 q (a₃ - a₂).
Zusätzlich zu dem Ordinatenvektor der Bezierfunktion werden zwei weitere Variablen
eingeführt und initialisiert - der Anfangspunkt s = 0 ihres Parameterintervalls und die
Intervallänge 1 = 1.
Das Verfahren zur Nullstellenbestimmung besteht aus mehreren Schritten:
- 1. Abtrennen einer auf dem Rand des Parameterintervalls liegende Nullstelle,
- 2. Separieren der Nullstellen und Eingrenzen einer separierten Nullstelle durch sukzessive Halbierung des Parameterintervalls,
- 3. schnelles Eingrenzen einer Nullstelle, sobald die Bezierfunktion auf dem verkleinerten Parameterintervall keinen Wendepunkt besitzt.
- 4. Das schnelle Eingrenzen einer separierten Nullstelle kann auch nach einer prinzipiell anderen Methode erfolgen, und zwar durch die alternierende Anwendung von Schmiegungsparabeln am linken und rechten Rand des Parameterintervalls.
Eine auf dem Rand des Parameterintervalls liegende Nullstelle ist daran erkennbar,
daß b₀ = 0 (Nullstelle für t = 0) oder b₄ = 0 (Nullstelle für t = 1). Die
folgenden Transformationen der Bezierfunktion B(b₀,b₁,b₂,b₃,b₄;t) zu
B(c₀,c₁,c₂,c₃,c₄;t) stellen ein Polynom mit einem um 1 verringerten Grad her,
das alle ursprünglichen Nullstellen außer der am Rand liegenden aufweist:
Falls b₀ = 0,
c₀ = 4 b₁,
c₁ = b₁+3 b₂/2,
c₂ = b₂+2 b₃/3,
c₃ = b₃+b₄/4,
c₄ = b₄.
c₀ = 4 b₁,
c₁ = b₁+3 b₂/2,
c₂ = b₂+2 b₃/3,
c₃ = b₃+b₄/4,
c₄ = b₄.
Falls b₄ = 0,
c₀ = b₀,
c₁ = b₁+b₀/4,
c₂ = b₂+2 b₁/3,
c₃ = b₃+3 b₂/2,
c₄ = 4 b₃.
c₀ = b₀,
c₁ = b₁+b₀/4,
c₂ = b₂+2 b₁/3,
c₃ = b₃+3 b₂/2,
c₄ = 4 b₃.
Das vorgeschlagene Verfahren zur Berechnung der Nullstellen liefert eine obere
und eine untere Schranke für jede der Nullstellen im Parameterintervall [0,1]. Die
Differenz beider Schranken kann kleiner als ein vorgegebener Fehler delta
gemacht werden, so daß die zu den Mittelwerten der Schranken berechneten
Kurvenpunkt im vorgegebenen Raser hinreichend nahe an den Trennstellen der
Oktantenbögen liegen. Das Verfahren beginnt mit einer sukzessiven Halbierung
des Parameterintervalls.
Der Algorithmus von de Casteljau erlaubt es, eine polynominale Bezierfunktion
B(a₀, . . ., an; t) an der Stelle t = t₀ aufzutrennen und in zwei Bezier-Segmente
B₁(b₀, . . ., bn; t) und B₂(c₀, . . ., cn; t) zu zerlegen. Dabei gilt
B₁(b₀, . . ., bn; t) = B(a₀, . . ., an; t₀*t),
B₂(c₀, . . ., cn; t) = B(a₀, . . ., an; t₀+(1-t₀)*t)
für 0 < = t < = 1.
Die abgeleiteten Segmente B₁ und B₂ stellen die beiden Teile der
Bezierfunktion B wieder als Bezierfunktion über [0,1] dar. Deshalb ist es
notwendig, in den Variablen s (Startpunkt) und l (Länge) mitzuführen,
welchem Abschnitt des Parameterintervalls der Ausgangsfunktion jeweils ein
Segment entspricht.
Die Startpunkte und die Intervallängen der abgetrennten Segmente werden
gemäß
s(B₁) = s(B),
s(B₂) = s(B)+t₀*1(B),
s(B₂) = s(B)+t₀*1(B),
1(B₁) = t₀*1(B),
1(B₂) = (1-t₀)*1(B)
1(B₂) = (1-t₀)*1(B)
berechnet.
Die Rechenschritte zur Auftrennung werden bei n = 4 zweckmäßigerweise nach
dem folgenden Schema organisiert:
b₀: = a₀
b₁: = a₀+t₀*(a₁ - a₀)
b₂: = a₁+t₀*(a₂ - a₁)
c₂: = a₂+t₀*(a₃ - a₂)
c₃: = a₃+t₀*(a₄ - a₃)
c₄: = a₄
b₁: = a₀+t₀*(a₁ - a₀)
b₂: = a₁+t₀*(a₂ - a₁)
c₂: = a₂+t₀*(a₃ - a₂)
c₃: = a₃+t₀*(a₄ - a₃)
c₄: = a₄
c₁: = b₂+t₀*(c₂ - b₂)
b₂: = b₁+t₀*(b₂ - b₁)
c₂: = c₂+t₀*(c₃ - c₂)
b₂: = b₁+t₀*(b₂ - b₁)
c₂: = c₂+t₀*(c₃ - c₂)
b₃: = b₂+t₀*(c₁ - b₂)
c₁: = c₁+t₀*(c₂ - c₁)
b₄: = b₃+t₀*(c₁ - b₃)
c₀: = b₄
c₁: = c₁+t₀*(c₂ - c₁)
b₄: = b₃+t₀*(c₁ - b₃)
c₀: = b₄
Zur Separierung der Nullstellen von B(a₀, . . ., a₄; t) verfährt man wie folgt:
Nach Abtrennung eventueller auf dem Rand liegender Nullstellen sind beide
Ordinaten a₀ und a₄ ungleich Null. Wenn sie verschiedene Vorzeichen
besitzen, liegt im Parameterintervall [s(B), s(B)+1(B)] der Ausgangsfunktion
wenigstens eine, im allgemeinen Fall eine ungerade Anzahl von Nullstellen. Da
aber bei den betrachteten Bezierfunktionen maximal zwei auftreten können,
existiert genau eine. Diese ist bereits separiert und liegt zwischen den Schranken
s(B) und s(B)+1(B).
Wenn a₀ und a₄ das gleiche Vorzeichen besitzen (etwa positiv sind), dann wird
unterschieden.
Sind auch a₁, a₂ und a₃ größer Null, dann kann keine Nullstelle vorliegen, denn
jeder Wert B(t) liegt im Parameterintervall zwischen dem Maximum und dem
Minimum aller ai. (Analog schließt man ausnahmslos strikt negativen
Ordinaten.)
Ist jedoch eine der Ordinaten a₁ bis a₃ kleiner oder gleich Null, kann die
Bezierfunktion entweder keine oder 2 Nullstellen aufweisen. Dann ist B(t) an
der Stelle t = ½ aufzutrennen und jedes der beiden Segmente auf die
beschriebene Weise zu untersuchen. Wenn dabei eine Bezierfunktion B′(t) mit
1(B′) < delta erreicht ist, ohne daß eine Aussage über ihre Nullstellen gemacht
werden kann, so kann die Halbierung abgebrochen werden. Eventuell noch
vorhandene Nullstellen können im Rahmen der Rechengenauigkeit als
Doppelnullstelle betrachtet werden und haben für die Digitalisierung der
Ausgangskurve keine Bedeutung. Sie entsprechen einem Wendepunkt der nicht
nach t differenzierten Funktionen x(t), y(t), x(t)+y(t) bzw. x(t) - y(t).
Nach der Separierung der Nullstelle(n) wird die sukzessive Halbierung des
Parameterintervalls jeweils mit dem Bezier-Segment B (a₀, . . ., a₄, t)
fortgesetzt, bei dem a₀ und a₄ verschiedene Vorzeichen besitzen, bis entweder
1(B) < delta (dann ist die gewünschte Genauigkeit erreicht) oder bis eine der
folgenden Bedingungen erfüllt ist:
a₄-a₃ < = a₃-a₂ < = a₂-a₁ < = a₁-a₀ (A)
bzw.
a₄-a₃ < = a₃-a₂ < = a₂-a₁ < = a₁-a₀ (B)
bzw.
a₄-a₃ < = a₃-a₂ < = a₂-a₁ < = a₁-a₀ (B)
Nach einer bekannten Eigenschaft der Bezierfunktionen ist dann die zweite
Ableitung von B(t) auf [0,1] bei (A) positiv (bei (B) negativ), die Funktion hat
dort keinen Wendepunkt. Damit ist weiter gewährleistet, daß die eingetretene
Monotonie der Ordinatendifferenzen auch bei folgenden Intervallteilungen
erhalten bleibt.
Das Bezierpolygon von B(a₀, . . ., a₄; t) mit den Eckpunkten
Pi = (i/4, ai), (i = 0, . . ., 4)
enthält in seiner konvexen Hülle stets den Graphen von B(t). Unter den
Voraussetzungen über die Ordinatendifferenzen liegt die konvexe Hülle der
Eckpunkte vollständig bei (A) oberhalb (bei (B) unterhalb) des Bezierpolygons,
daher gilt das auch für den Graphen von B(t). Aufgrund dieser Eigenschaft kann
zur schnellen Einschließung der Nullstelle übergegangen werden.
Die schnelle Entschließung der Nullstellen beruht auf einer Kombination des einfachen
Sekantenverfahrens mit einem modifizierten Tangentenverfahren, die die
Vorteile beider Verfahren koppelt. Sie verwendet, daß bei fortschreitender
Verfeinerung des Intervalls die Seiten der Bezierpolygone den Graphen der
Bezierfunktion sehr gut approximieren.
Im Fall A setzen wird ohne echte Einschränkung voraus, daß a₀ < 0 und a₄ < 0
gilt, dann ist k durch ak < = 0, ak+1 < 0 eindeutig bestimmt. Die Seite
des Bezierpolygons zwischen Pk und Pk+1 hat den Schnittpunkt
mit der t-Achse. Dieser Wert ist eine obere Schranke für die Nullstelle von B(t),
da der Graph von B(t) oberhalb des Bezierpolygons liegt. Damit gilt B(t₁) < = 0.
Nach dem Algorithmus von de Casteljau wird nun B(t) an der Stelle t = t₁
aufgetrennt und das linke Segment B₁(t) weiter betrachtet. Wenn B₁(1) = 0,
dann ist die Nullstelle der Ausgangsfunktion gleich s(B₁)+1(B₁), andernfalls
berechnet man für B₁(t) = B₁(b₀, . . ., b₄; t) den Schnittpunkt
t₂ = b₀/(b₀ - b₄)
der Verbindungsstrecke der Polygoneckpunkte (0, b₀) und (1, b₄) mit der t-
Achse. Diese Strecke liegt oberhalb des Graphen von B₁(t), daher ist t₂ eine
untere Schranke für die Nullstelle von B₁(t). Mit t = t₂ wird erneut eine
Auftrennung von B₁(t) ausgeführt, nach der das rechte Segment B₂(t)
weiterverwendet wird.
In der Folge sind auf die beschriebene Weise jeweils ein Polygonseiten- und ein
Sekantenschritt auszuführen, bis der Intervallängenparameter 1 kleiner als die
vorgegebene Schranke delta wird. Dann ist s(B)+1(B)/2 ein geeigneter
Näherungswert der gesuchten Nullstelle.
Im Fall B setzen wir analog voraus, daß a₀ < 0 und a₄ < 0. Der Index k
wird durch ak < = 0, ak+1 < 0 definiert. Als untere Schranke für die Nullstelle
von B(t) berechnet man
da das Bezierpolygon oberhalb des Graphen von B(t) liegt. B(t) wird an der
Stelle t = t₁ aufgetrennt, dann enthält das rechte Segment B₂(t) die Nullstelle. Ist
B₂(0) = 0, dann ist die Nullstelle der Ausgangsfunktion zu s(B₂) ermittelt, wenn
nicht, wird aus den Ordinaten c₀ und c₄ von B₂(t) der Schnittpunkt der
Sekante mit der t-Achse
t₂ = c₀/(c₀ - c₄)
berechnet. Er liefert eine obere Schranke für die Nullstelle von B₂(t), daher ist
diese Bezierfunktion bei t = t₂ aufzutrennen und das linke Segment weiter zu
zerlegen.
Auch hier sind nach dem beschriebenen Verfahren jeweils ein Polygonseiten- und
ein Sekantenschritt auszuführen, bis für den Längenparameter 1 < delta gilt.
Dann ist s(B)+1(B)/2 ein geeigneter Näherungswert für die gesuchte Nullstelle.
Es existiert eine weitere Methode der sukzessiven Einschließung einer separierten
Nullstelle einer Bezierfunktion B(a₀, . . ., a₄; t). Dabei wird zur Teilung des
Parameterintervalls nach dem Algorithmus von de Casteljau nicht die
Intervallmitte verwendet, sondern die Nullstellen in [0,1] von passend gewählten
quadratischen Bezierfunktionen Bx(a₀, x, a₄; t). Diese Funktionen stimmen am
Rand des Intervalls mit der vorgegebenen Bezierfunktion überein. Sie besitzen
daher in [0,1] genau eine Nullstelle, und über den Parameter x kann man
erreichen, daß für t = 0 oder t = 1 eine Berührung 2. Ordnung von B und Bx
auftritt (Bx ist eine Schmiegungsparabel).
Die allgemeine Form der Nullstellen von Bx lautet
t₁ = a₀/(a₀ - x+sqrt (x² - a₀a₄)),
t₂ = a₀/(a₀ - x - sqrt (x² - a₀a₄)).
Wenn a₀ < 0, dann liegt t₁ in [0,1], andernfalls ist die Formel für t₂ zur
Bestimmung des Intervallteilungspunktes zu wählen.
Für x = 2 a₁ - a₀ erhält man die Schmiegungsparabel am linken Rand, für
x = 2 a₃ - a₄ erhält man die Schmiegungsparabel am rechten Rand.
Die vorgeschlagene Methode der Einschließung der Nullstelle von B(a₀, . . ., a₄; t)
mit a₀a₄ < 0 besteht darin, daß eine Intervallteilung nach de Casteljau an der
sich für x = 2 a₁ - a₀ oder x = 2 a₃ - a₄ ergebenden Nullstelle in [0,1]
einer Schmiegungsparabel ausgeführt wird, die zwei Segmente B₁(b₀, . . ., b₄; t)
und B₂(c₀, . . ., c₄; t) liefert. Dabei werden wie im Punkt 2 beschrieben die
Intervallparameter s(B) und 1(B) mitgeführt. Ist b₄ = c₀ = 0, dann ist die
gesuchte Nullstelle ermittelt. Andernfalls gilt entweder b₀*b₄ < 0, dann
enthält das Segment B₁ die Nullstelle von B, oder c₀*c₄ < 0, dann wird die
Einschließung mit Segment B₂ forgeführt. Die nächsten Intervallteilungsschritte
werden im Wechsel mit der Nullstelle der jeweils anderen Schmiegungsparabel
des Segmentes ausgeführt, dadurch erreicht man eine schnelle Einschließung der
Nullstelle sowohl von oben als auch von unten. Das Verfahren endet wieder,
wenn der Längenparameter eines Segmentes kleiner als die Fehlerschranke delta
wird.
Aus der parametrischen Darstellung (x(t), y(t)) der Bezierkurve wird durch Elimination
des Parameters t eine implizite polynomiale Darstellung
f(x,y) = ax³+bx²y+cxy²+dy³+ex²+fxy+gy²+hx+iy+j = 0
hergestellt. Nach [J. Hoschek, D. Lasser: Grundlagen der geometrischen Datenverarbeitung,
B. G. Teubner 1989] liefert die sogenannte Bezout-Resultante der Kurve eine
Determinantenform von f. Aus den dort angegebenen Formeln läßt sich die folgende
Formel ableiten, die rechentechnisch günstiger ist.
Bezeichnet man die Kontrollpunkte der Bezierkurve X(t) mit Xi = (xi, yi) (0 < = i < = 3),
die Gewichte an X₁ und X₂ mit p und q, und führt die Determinanten
ein, wobei r₀ = 1, r₁ = 3p, r₂ = 3q, r₃ = 1, dann ist
eine implizite Darstellung der Kurve X(t).
Zur Berechnung der Polynomkoeffizienten von f setzt man das Element in Zeile m und
Spalte n dieser Determinante mit umnx+vmny+wmn an.
Dann gilt:
a = det(umn), d = det(vmn), j = det(wmn),
e = (f(1,0)+f(-1,0))/2 - j,
h = (f(1,0) - f(-1,0))/2 - a,
g = (f(0,1)+f(0,-1))/2 - j,
i = (f(0,1) - f(0,1))/2 - d,
h = (f(1,0) - f(-1,0))/2 - a,
g = (f(0,1)+f(0,-1))/2 - j,
i = (f(0,1) - f(0,1))/2 - d,
b = (f(1,1)+f(-1,1))/2 - f(0,1) - e,
c = (f(1,1)+f(1,-1))/2 - f(1,0) - g,
f = e+g+j - (f(1,-1)+f(-1,1))/2,
c = (f(1,1)+f(1,-1))/2 - f(1,0) - g,
f = e+g+j - (f(1,-1)+f(-1,1))/2,
wobei
f(1,0) = det(wmn+umn),
f(-1,0) = det(wmn - umn),
f(0,1) = det(wmn+vmn),
f(0,-1) = det(wmn - vmn),
f(1,1) = det(wmn+umn+vmn),
f(1,-1) = det(wmn+umn - vmn),
f(-1,1) = det(wmn - umn+vmn).
f(-1,0) = det(wmn - umn),
f(0,1) = det(wmn+vmn),
f(0,-1) = det(wmn - vmn),
f(1,1) = det(wmn+umn+vmn),
f(1,-1) = det(wmn+umn - vmn),
f(-1,1) = det(wmn - umn+vmn).
Beim Generieren eines Oktantenbogens wird in einem Testpunkt Xs anhand des Vorzeichens
von f(xs, ys) entschieden, welcher von zwei Rasterpunkten näher an der zu
digitalisierenden Kurve liegt. Die Zuordnung zwischen Vorzeichen und zu wählendem
Rasterpunkt kehrt sich jedoch um, wenn die Kurvenverfolgung einen Doppelpunkt der
impliziten Kurve überschreitet (in eine Schlinge eintritt oder diese verläßt). Dieser Effekt
tritt auch ein, wenn die vorgegebene Bezierkurve keinen Doppelpunkt aufweist, aber
durch ihre Fortsetzung auf die ganze Ebene geschnitten wird. Deshalb können (für kubische
Bezierkurven im Höchstfall zwei) zusätzliche Bogenteilungen erforderlich sein.
Die Parameterwerte der Teilungspunkte lassen sich wie folgt ermitteln:
Es sei M die 4×3-Matrix
Es sei M die 4×3-Matrix
mit den Kontrollpunkten der
Bezierkurve. Di (0 < = i < = 3) bezeichne die Determinante der aus M durch Streichung der i-ten Zeile hervorgehenden Matrix, dividiert durch ri, wobei r₀ = 1, r₁ = 3p, r₂ = 3q, r₃ = 1.
Bezierkurve. Di (0 < = i < = 3) bezeichne die Determinante der aus M durch Streichung der i-ten Zeile hervorgehenden Matrix, dividiert durch ri, wobei r₀ = 1, r₁ = 3p, r₂ = 3q, r₃ = 1.
Setzt man
dann werden die Parameterwerte der Selbstüberschneidung durch die Lösungen der
quadratischen Gleichung in Bezierform
a₀ (1-t)²+2 a₁t(1-t)+a₂t² = 0
angegeben. Dabei sind nur die im Parameterintervall [0,1] liegenden Nullstellen für eine
zusätzliche Bogenteilung zu berücksichtigen.
Das Auftreten einer Doppelnullstelle dieser Gleichung im Intervall [0,1] ist ein Hinweis
auf eine Singularität der Bezierkurve (die Schlinge entartet zu einer Spitze). In einer
Umgebung der Singularität ist das Verfahren der inkrementellen Digitalisierung nicht
anwendbar. Wenn Bezierkurven von diesem Typ auftreten können, sind sie mittels des
Algorithmus von de Casteljau so zu zerlegen, daß die kritische Umgebung der Singularität
nach einem üblichen unkritischen Verfahren digitalisiert werden kann.
Zur Herleitung der quadratischen Gleichung noch einige Bemerkungen:
In einem Doppelpunkt (xd, yd) der impliziten Kurve gilt für die partiellen Ableitungen von f sowohl fx(xd, yd) = 0 als auch fy(xd, yd) = 0. Ausgehend von dem in x und y kubischen Polynom f sind fx und fy quadratische Polynome. Setzt man die rationalen kubischen Bezierfunktionen x(t) und y(t) in die Gleichungen
In einem Doppelpunkt (xd, yd) der impliziten Kurve gilt für die partiellen Ableitungen von f sowohl fx(xd, yd) = 0 als auch fy(xd, yd) = 0. Ausgehend von dem in x und y kubischen Polynom f sind fx und fy quadratische Polynome. Setzt man die rationalen kubischen Bezierfunktionen x(t) und y(t) in die Gleichungen
fx(x,y) = 3ax²+2bxy+cy²+2ex+fy+h = 0,
fy(x,y) = bx²+2cxy+3dy²+fx+2gy+i = 0
fy(x,y) = bx²+2cxy+3dy²+fx+2gy+i = 0
ein und multipliziert beide mit dem Quadrat des gemeinsamen Nenners von x(t) und
y(t), so erhält man zwei Gleichungen 6. Grades in t, fx(t) = 0 und fy(t) = 0, deren
Koeffizienten von den Kontrollpunkten Xi und den Gewichten p, q der Bezierkurve
abhängen. Beim Vorliegen eines Doppelpunktes gibt es zwei Parameterwerte t₁ und t₂,
die beide Gleichungen erfüllen. Daher haben fx(t) und fy(t) einen quadratischen Faktor
(t-t₁)(t-t₂) gemeinsam. Die konkrete Form dieses Faktors wurde mit Hilfe eines
Formelmanipulationssystems aus der Bezout-Resultante für die Bezierkurve abgeleitet.
Aus den Parameterwerten ta für den Anfangspunkt und te für den Endpunkt eines
Teilbogens einer Bezierkurve werden über die Parametergleichung X(t) = (x(t), y(t))
die Koordinaten der Punkte Xa = (xa, ya) und Xe = (Xe, ye) berechnet. Es sei jetzt
vorausgesetzt, daß der Teilbogen vollständig in einem der 8 Oktanten liegt, daß also die
Oktantenteilung ausgeführt wurde.
Die Standardlage eines Oktantenbogens ist dadurch gekennzeichnet, daß xe < = xa, ye < = ya
und dx = xe - xa < = dy = ye - ya. Liegt ein Oktantenbogen nicht in der Standardlage
vor, so kann er durch eine oder mehrere der Transformationen Negation in x,
Negation in y bzw. Vertauschung von x und y sowohl an den Punkten Xa und Xe als
auch an der impliziten Kurvengleichung in die Standardlage überführt werden. Zweckmäßigerweise
verwendet man für die Digitalisierung des Oktantenbogens eine lokale
Kopie des Koeffizientenvektors (a, . . ., j) des Polynoms f, vermerkt die ausgeführten
Transformationen in einer Variablen bogentyp, und führt die erforderlichen Transformationen
in der nachstehenden Reihenfolge aus:
- 1. Wenn xa < xe, dann ist die Negation in x auszuführen. Dazu setzt man xa : = -xa, xe : = -xe,und negiert die Koeffizienten a, c, f und h (von x³, xy², xy und x, die x in ungerader Potenz enthalten) des Polynoms f(x,y). Die übrigen Koeffizienten von f bleiben unverändert. Die Negation in x ist in der Variablen bogentyp zu kennzeichnen.
- 2. Wenn ya < ye, dann ist die Negation in y auszuführen. Dazu setzt man ya : = -ya, ye : = -ye,und negiert die Koeffizienten b, d, f und i (von x²y, y³, xy und y, die y in ungerader Potenz enthalten) des Polynoms f(x,y). Die übrigen Koeffizienten von f bleiben unverändert. Die Negation in y ist in der Variablen bogentyp zu kennzeichnen.
- 3. Wenn (für die eventuell transformierten Werte) xa+ye < xe+ya gilt (d. h. ye - ya < xe - xa), sind x und y zu vertauschen. Dazu werden xa < - < ya, xe < - < yeausgetauscht sowie a < - < d, b < - < c, e < - < g, h < - < i (die Koeffizienten von x³ und y³, x²y und xy², x² und y², x und y, die x und y in ungleicher Potenz enthalten) des Polynoms f(x,y). Die übrigen Koeffizienten von f bleiben unverändert. Die Vertauschung von x und y ist in der Variablen bogentyp zu kennzeichnen.
Es wird davon ausgegangen, daß der Anfangspunkt Xa = (xa, ya) und der Endpunkt
Xe = (xe, ye) des exakten Kurvenbogens berechnet vorliegen. Das Vorzeichen des
transformierten Polynoms f sei so gewählt, daß für Punkte (x, y) unterhalb des Bogens
f(x,y) < 0 gilt.
Da die Fortschreitrichtung eines Standardbogens die x-Richtung mit wachsenden x-
Werten
ist, verläuft der digitalisierte Bogen zwischen den diskreten Abszissen x₀ = ceil(xa)
und x₁ = floor(xe). (Die Funktionen ceil(x) und floor(x) bezeichnen die kleinste
ganze Zahl größer oder gleich x bzw. die größte ganze Zahl kleiner oder gleich x). Durch
die Oktantenteilung ist auf dem Intervall [xa, xe] gewährleistet, daß der Anstieg des
Bogens zwischen 0 und 1 einschließlich liegt. Die Ordinate des Kurvenpunktes zur Abszisse
x₀ auf dem betrachteten Bogen liegt wegen x₀ - xa < 1 zwischen ya und ya+1.
Der zur Kurve nächste Rasterpunkt an der Abszisse x₀ liegt demnach zwischen
round(ya) = floor(ya+0.5)
und
round(ya+1) = floor(ya+1.5).
und
round(ya+1) = floor(ya+1.5).
Als Testpunkt für die Entscheidung über den der Kurve enger benachbarten Rasterpunkt,
den Startpunkt des digitalen Bogens, wird daher
(x₀, floor(ya+0.5)+0.5)
gewählt.
Ist f(ceil(xa), round(ya)+0.5) < 0, liegt der Testpunkt oberhalb des exakten Bogens,
damit ist y₀ = round(ya) Ordinate des Startpunktes. Im anderen Fall ist y₀ = round(ya)+1
als Ordinate des Startpunktes zu wählen.
(Bei dieser Verfahrensweise kann es vorkommen, daß an den Oktantenteilungspunkten
der Bezierkurve zum Anstieg+1 oder -1 durch die Bogenteilung ein Rasterpunkt der
Digitalisierung ausgelassen wird. Das wird vermieden, indem man im Fall y₀ - ya < 1
den Rasterpunkt (x₀-1, y₀-1) vor dem Startpunkt hinzunimmt.)
Weiter Rasterpunkte werden im Prinzip durch die Wiederholung der Vorzeichenauswertung
des Polynoms in fortlaufenden Testpunkten generiert. Ausgehend von einem
bereits bestimmten Rasterpunkt (x,y) der digitalen Approximation kommen als Kandidaten
für den Rasterpunkt zur Abszisse x+1 nur die Ordinaten y oder y+1 in Frage.
Der Mittelpunkt (x+1, y+0.5) ist daher Testpunkt für die zu treffende Entscheidung
über den Rasterpunkt mit minimalem Approximationsfehler.
Die Anzahl der auszuführenden Schritte ergibt sich aus der Differenz x₁ - x₀.
Die Besonderheit des vorgeschlagenen Verfahrens besteht darin, daß die Auswertung des
Polynoms f in aufeinanderfolgenden Testpunkten inkrementell aus dem vorhergehenden
Polynomwert und vorbereiteten Korrekturwerten erfolgt. Diese sind je nach der Art des
Übergangs in den nächsten Testpunkt jeweils durch einige Additionen zu aktualisieren.
Es bezeichne fp den Zuwachs von f(x,y) beim Übergang vom Testpunkt (x,y) zum
nächsten Testtpunkt durch Inkrement in beiden Koordinatenrichtungen, also
fp(x,y) = f(x+1, y+1) - f(x,y).
Dieser Übergang wird als p-Übergang bezeichnet.
Entsprechend bezeichne fm den Zuwachs von f(x,y) beim Übergang vom Testpunkt
(x,y) zum nächsten Testpunkt durch Inkrement in der x-Richtung, also
fm(x,y) = f(x+1,y) - f(x,y).
Dieser Übergang wird als m-Übergang bezeichnet.
Analog vereinbaren wir die Änderungen dieser und weiterer Zuwächse durch
fp*(x,y) = f*(x+1,y+1) - f*(x,y),
fm*(x,y) = f*(x+1,y) - f*(x,y),
wobei * eine endliche Folge von p- bzw. m-Übergängen bezeichnet.
Die Funktion fp* gibt den Wert an, um den man den Funktionswert von f* bei einem p-
Übergang korrigieren muß. Die Funktion fm* gibt den Wert an, um den der Funktionswert
von f* bei einem m-Übergang korrigiert werden muß.
Unmittelbares Ausrechnen liefert die Identitäten
fmp(x,y) = fpm(x,y)
und
fmmp(x,y) = fmpm(x,y) = fpmm(x,y),
fmpp(x,y) = fpmp(x,y) = fppm(x,y)
für beliebige x, y.
Darüber hinaus sind die Zuwächse dritter Ordnung des kubischen Polynoms f konstant.
Somit müssen für die inkrementelle Auswertung von f in den Testpunkten jeweils 10
Parameter berechnet werden - der Funktionswert f, die Korrekturen erster Ordnung fm
und fp, die Korrekturen zweiter Ordnung fmm, fpm und fpp sowie die Korrekturen dritter
Ordnung fmmm, fpmm, fppm und fppp. Die letzteren 4 müssen als Konstante nur einmal pro
Bogen bestimmt werden. Die übrigen 6 werden inkrementell je nach der getroffenen
Vorzeichenentscheidung mit Hilfe ihrer bereits berechneten Zuwächse aktualisiert.
Bei einem p-Übergang sind folgende Additionen auszuführen
f : = f+fp,
fp : = fp+fpp,
fm : = fm+fpm,
fm : = fm+fpm,
fpp : = fpp+fppp,
fpm : = fpm+fppm,
fmm : = fmm+fpmm.
fpm : = fpm+fppm,
fmm : = fmm+fpmm.
Bei einem m-Übergang sind folgende Additionen auszuführen
f : = f+fm,
fp : = fp+fpm,
fm : = fm+fmm,
fm : = fm+fmm,
fpp : = fpp+fppm,
fpm : = fpm+fppm,
fmm : = fmm+fmmm.
fpm : = fpm+fppm,
fmm : = fmm+fmmm.
Die Formeln für die Anlaufrechnung im ersten Testpunkt (x,y) lauten:
fm(x,y) und fp(x,y) werden am günstigsten mittels ihrer
Definitionsgleichung berechnet.
fpp(x,y) = (6a+4b+2c) x+(2b+4c+6d) y+6(a+b+c+d)+2(e+f+g),
fpm(x,y) = (6a+2b) x+(2b+2c) y+6a+3b+c+2e+f,
fmm(x,y) = 6a x+2b y+6a+2e,
fppp = 6(a+b+c+d),
fppm = 6a+4b+2c,
fpmm = 6a+2b,
fmmm = 6a.
Alle Rechnungen sind im Gleitkommaformat mit erhöhter Genauigkeit durchzuführen,
um die Auswirkungen von Rundungsfehlern zu begrenzen. Dabei kann trotz der geringeren
Geschwindigkeit gegenüber dem Integer-Format eine hohe Generierungsrate der
Rasterpunkte erreicht werden. Eine Implementierung des Verfahrens auf einem Transputer
T800-20 benötigte pro Rasterpunkt 11 Mikrosekunden.
Bei einer Anwendung des vorgeschlagenen Verfahrens zur Kurvengenerierung in sehr
hoher Auflösung ist das Problem der Akkumulation von Rundungsfehlern dadurch entschärft,
daß die Zuwächse höherer Ordnung betragsmäßig sehr viel kleiner und damit absolut
genauer sind als die Funktionswerte oder die Zuwächse niederer Ordnung. Wenn
bei der Generierung sehr langer Bögen die geforderte Genauigkeit trotzdem durch
akkumulierte Rundungsfehler beeinträchtigt wird, kann nach einer festen Anzahl erzeugter
Punkte erneut eine Anlaufrechnung eingeschaltet werden.
Für die Generierung eines Oktanbogens in Standardlage wurde vorausgesetzt, daß
fy(xi,yi) < 0 an irgendeinem inneren Punkt (xi,yi) des Bogens. Es soll nun anhand des
Umlaufs um einen Vollkreis
f(x,y) = r² - x² - y² = 0
betrachtet werden, welche Forderungen an die untransformierten Bögen in allen 8 Ausgangslagen
zu stellen sind, damit nach der Transformation in die Standardlage diese Bedingung
erfüllt ist. In diesem Beispiel ist die Voraussetzung für den 7. Oktanten
(Standardlage) erfüllt.
Es ist zu berücksichtigen, daß die Negation in x fx in -fx überführt, die Negation in y
überführt fy in -fy und die Vertauschung von x und y vertauscht fx mit fy.
Aus dieser Tabelle ist abzulesen, daß für den ersten Bogen der Kurvengenerierung in
irgendeinem inneren Punkt des Bogens zu bestimmen ist
(Regel 1)
das Vorzeichen von fx, falls er im Oktanten 1, 2, 5 oder 6 liegt,
das Vorzeichen von fy, falls er im Oktanten 3, 4, 7 oder 8 liegt.
das Vorzeichen von fy, falls er im Oktanten 3, 4, 7 oder 8 liegt.
Um nach der Transformation in die Standardlage fy < 0 zu erreichen, muß das Vorzeichen
des Polynoms f so gewählt werden, daß die partielle Ableitung orthogonal zur
Fortschreitrichtung auf dem ersten Bogen
(Regel 2)
kleiner 0 ist für die Oktanten 1, 4, 6 oder 7,
größer 0 ist für die Oktanten 2, 3, 5 oder 8.
größer 0 ist für die Oktanten 2, 3, 5 oder 8.
Weiter geht aus dieser Tabelle hervor, daß bei einem Durchlauf durch die vollständige
Bezierkurve in jedem Oktantenteilungspunkt mit Übergang zum benachbarten Oktanten
(entsprechend dem Vollkreis) das Vorzeichen des Polynoms f zu invertieren ist. Das
gleiche gilt beim Durchlauf durch einen Teilungspunkt, der einem Doppelpunkt der impliziten
Kurve entspricht. Damit entfällt die Notwendigkeit, für den zweiten und weitere
Bögen der Bezierkurve das Vorzeichen der partiellen Ableitung orthogonal zur Fortschreitrichtung
zu errechnen.
Damit läßt sich die Generierung der vollständigen Bezierkurve wie folgt beschreiben. Die
t-Parameter der Bogenteilungspunkte sind in eine aufsteigende Folge
0 = t₀ < t₁ < . . . < tn = 1
zu sortieren. Für t₀ und tn sind die Kurvenpunkte als vorgegebene Kontrollpunkte bereits
bekannt, zu den restlichen sind die Punkte (x(tk),y(tk)) zu errechnen. Der Koeffizientenvektor
des Polynoms f wird einmal gemäß der Bezout-Resultante und einmal mit
negierten Elementen (-f) abgespeichert. In einem inneren Punkt des ersten Bogens über
[0,t₁] bestimmt man nach Regel 1 das Vorzeichen einer partiellen Ableitung von f.
Wenn es Regel 2 genügt, wird als lokale Kopie des Koeffizientenvektors f an die
Bogengenerierung übergeben, andernfalls der Vektor von -f. In der Folge ist bei jedem
anschließenden Bogen der alternierende Koeffizientenvektor zu wählen.
Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, daß abbildende
Verfahren mit sehr hohen Genauigkeitsanforderungen, die aus Gründen der Zeitabhängigkeit
der Genauigkeit auf kurze Prozeßzeiten angewiesen sind, mit dem erfindungsgemäßen
Verfahren realisiert werden können, da mit dem Verfahren auch bei
komplexen Geometrien die Koordinatengenerierung in Echtzeit erreichbar ist. Durch die
kurzen Prozeßzeiten erhöht sich die Produktivität der mit diesem Verfahren arbeitenden
Anwendungen (z. B. Laserbelichter (Drucker, Plotter etc.), Mikrolithografie mit Elektronen-
oder Röntgenstrahlen, Mikrosystemtechnik, binäre und integrierte Optik, Herstellung
von Lichtwellenleitern, 2-D-Robotersteuerungen, Drucktechnik und die Visualisierung
von Entwurfsdaten). Bei den Anwendungen, die wegen der über einen längeren
Zeitraum schwierig aufrechterhaltbaren Prozesse bisher nur mit erhöhten Ausschußraten
betrieben werden konnten, ist wegen der deutlich kürzeren Prozeßzeiten eine Qualitätssteigung
und Verringerung der Ausschußrate zu realisieren. Zeitaufwendige Datenvorbereitungsprozesse
zur Umwandlung der kompakten Geometriedaten in hochaufgelöste
Steuerdaten (offline-Compilierung) können entfallen, es entstehen daher keine
Zwischendateien mit Massendatencharakter, die umfangreichen Speichermedien und
schnelle Transferkanäle hin zur Steuereinrichtung erfordern würden.
Claims (4)
1. Verfahren zur Generierung von ebenen technischen Kurven oder Konturen zur
Darstellung von technischen Bildern, dadurch gekennzeichnet, daß zur Digitalisierung
parametrischer, rationaler oder polynomialer kubischer Bezierkurven der Form
mit den Kontrollpunkten
Xi = (xi, yi) (0 < = i < = 3),
den Gewichten p, q < 0,
und dem Parameter t mit 0 < = t < = 1
diese in Oktantenbögen, die getrennt erzeugt werden, zerlegt werden, derart, daß die
Grenzen der Oktantenbögen durch die Parameter t an den Punkten der Kurve bestimmt
werden, wo diese den Anstieg 0, ∞, 1 oder -1 aufweist, daß anschließend die Kurven zur
Befreiung von der Parametrisierung in eine implizite Form f(x,y) = 0 transformiert
werden, daß eine zusätzliche Kurventeilung der Bezierkurve an den Stellen erfolgt, an
denen f(x,y) = 0 eine Selbstüberschneidung besitzt und danach eine Bestimmung der
Koordinaten aller Teilungspunkte aus den entsprechenden Parameterwerten erfolgt,
wobei die Teilungspunkte zusammen mit den Anfangs- und Endpunkten der ursprünglichen
Kurve die Anfangs- und Endpunkte aller Einzelbögen bilden, daß alle diese Bögen
durch Spiegelungen an einer oder mehreren der drei Achsen x = 0, y = 0 oder x = y in die
Standardlage gebracht werden, daß die Generierung der digitalen Approximation mit der
Bestimmung des zum Startpunkt des Bogens benachbarten Rasterpunktes (xo, y₀)
beginnt, wobei durch die Oktantenteilung und die Spiegelungen gesichert ist, daß der
Anstieg des Bogens stets zwischen 0 und 1 liegt, daß anschließend die Berechnung der
Funktion f(xo+1, yo+½) erfolgt, wobei diese Berechnung und die Auswertung des
Vorzeichens von f in (xo+1, yo+½) die Entscheidung ermöglicht, zwischen welchem
Rasterpunkt und Testpunkt der Bogen verläuft und daß anschließend dieser Rasterpunkt
den Ausgangspunkt für den nächsten Schritt bis zum Erreichen des Endpunktes des
Bogens bildet.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Parameterwerte t zur
Oktantenteilung dadurch ermittelt werden, daß
- - ein Polynom, dessen Nullstellen im Intervall [0, 1] den Parameterwerten entsprechen, als Bezierfunktion 4. Grades formelmäßig dargestellt wird,
- - die Konstruktion von abgeleiteten Bezierfunktionen über eingeschränkten Intervallen, die auf Nullstellen untersucht werden, nach dem Algorithmus von de Casteljau erfolgt,
- - die Nullstellen zuerst durch sukzessive Intervallhalbierung separiert werden,
- - die Einschließung einer Nullstelle durch garantierte obere und untere Schranken mit einer vorgegebenen Genauigkeit zunächst durch sukzessive Intervallhalbierung erfolgt,
- - dabei das Kontrollpolygon einer abgeleiteten Bezierfunktion über dem Einschließungsintervall schnell auf Konvexität getestet wird,
- - bei Erfüllung des Tests die Nullstelle im Wechsel durch die Schnittpunkte der Parameterachse mit dem Kontrollpolygon bzw. mit der Sekante des Graphen einer abgeleiteten Bezierfunktion über dem Einschließungsintervall immer enger eingeschlossen wird.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Parameterwerte t zur
Oktantenteilung dadurch ermittelt werden, daß
- - ein Polynom, dessen Nullstellen im Intervall [0, 1] den Parameterwerten entsprechen, als Bezierfunktion 4. Grades formelmäßig dargestellt wird,
- - die Konstruktion von abgeleiteten Bezierfunktionen über eingeschränkten Intervallen, die auf Nullstellen untersucht werden, nach dem Algorithmus von de Casteljau erfolgt,
- - die Nullstellen zuerst durch sukzessive Intervallhalbierung separiert werden,
- - die Einschließung einer separierten Nullstelle durch garantierte obere und untere Schranken bis zur vorgegebenen Genauigkeit im Wechsel durch die Nullstelle einer Schmiegungsparabel der abgeleiteten Bezierfunktion am rechten bzw. linken Rand des Einschließungsintervalls erfolgt, wobei jede Schmiegungsparabel mit der Bezierfunktion an beiden Intervallenden übereinstimmt.
4. Verfahren nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß
- - die implizite Darstellung der Bezierkurve durch ein Polynom f(x, y) aus einer Determinantenform der Bezout-Resultante gewonnen wird, deren Elemente formelmäßig direkt aus den Kontrollpunkten und Gewichten der Bezierkurve berechnet werden,
- - die Koeffizienten des Polynoms f(x, y) durch die Berechnung der Polynomwerte in 7 Punkten (x, y) und die Auswertung von 10 dreireihigen Determinanten erfolgt, aus denen lediglich einfache Linearkombinationen zu bilden sind,
- - die Parameterwerte einer Selbstüberschneidung der Bezierkurve als Lösungen einer quadratischen Gleichung bestimmt werden, deren Koeffizienten in der Bezierform formelmäßig aus den Kontrollpunkten und Gewichten der Bezierkurve dargestellt sind.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4244462A DE4244462A1 (de) | 1992-12-24 | 1992-12-24 | Verfahren zur Generierung von ebenen technischen Kurven oder Konturen |
JP6514689A JPH08504984A (ja) | 1992-12-24 | 1993-12-23 | 平面の技術的曲線ないし等高線を形成する方法 |
US08/481,451 US5717847A (en) | 1992-12-24 | 1993-12-23 | Method for generating plane technical curves or contours |
EP94902635A EP0954618B1 (de) | 1992-12-24 | 1993-12-23 | Verfahren zur generierung von ebenen technischen kurven oder konturen |
DE59310364T DE59310364D1 (de) | 1992-12-24 | 1993-12-23 | Verfahren zur generierung von ebenen technischen kurven oder konturen |
PCT/DE1993/001252 WO1994015267A2 (de) | 1992-12-24 | 1993-12-23 | Verfahren zur generierung von ebenen technischen kurven oder konturen |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4244462A DE4244462A1 (de) | 1992-12-24 | 1992-12-24 | Verfahren zur Generierung von ebenen technischen Kurven oder Konturen |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4244462A1 true DE4244462A1 (de) | 1994-06-30 |
Family
ID=6476780
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4244462A Withdrawn DE4244462A1 (de) | 1992-12-24 | 1992-12-24 | Verfahren zur Generierung von ebenen technischen Kurven oder Konturen |
DE59310364T Expired - Fee Related DE59310364D1 (de) | 1992-12-24 | 1993-12-23 | Verfahren zur generierung von ebenen technischen kurven oder konturen |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE59310364T Expired - Fee Related DE59310364D1 (de) | 1992-12-24 | 1993-12-23 | Verfahren zur generierung von ebenen technischen kurven oder konturen |
Country Status (5)
Country | Link |
---|---|
US (1) | US5717847A (de) |
EP (1) | EP0954618B1 (de) |
JP (1) | JPH08504984A (de) |
DE (2) | DE4244462A1 (de) |
WO (1) | WO1994015267A2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008062121A1 (de) * | 2008-10-02 | 2010-04-15 | Samsung Electro-Mechanics Co., Ltd., Suwon | Kameraeinheit mit Fahrkorridor-Anzeigefunktion für ein Fahrzeug, Verfahren zur Anzeige einer vorausberechneten Fahrzeugtrajektorie und System zur Generierung von Fahrkorridormarkierungen |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4244462A1 (de) * | 1992-12-24 | 1994-06-30 | Equicon Software Gmbh Jena | Verfahren zur Generierung von ebenen technischen Kurven oder Konturen |
US6906718B1 (en) * | 1997-04-25 | 2005-06-14 | Microsoft Corporation | Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics |
DE19901934C2 (de) * | 1999-01-19 | 2001-07-19 | Heidelberger Druckmasch Ag | Verfahren zur Erzeugung eines Rahmens für grafische Objekte, die durch Bezier-Kurven beschrieben sind |
US6466211B1 (en) | 1999-10-22 | 2002-10-15 | Battelle Memorial Institute | Data visualization apparatuses, computer-readable mediums, computer data signals embodied in a transmission medium, data visualization methods, and digital computer data visualization methods |
DE10226270A1 (de) * | 2002-06-07 | 2004-01-08 | Cocreate Software Gmbh & Co. Kg | Verfahren und Computersystem zum Erzeugen einer mehrdimensionalen Abstandsfläche |
US7239319B2 (en) * | 2004-08-27 | 2007-07-03 | Microsoft Corporation | Rendering outline fonts |
US7308525B2 (en) * | 2005-01-10 | 2007-12-11 | Sandisk Il Ltd. | Method of managing a multi-bit cell flash memory with improved reliablility and performance |
US9978161B2 (en) * | 2016-04-11 | 2018-05-22 | Here Global B.V. | Supporting a creation of a representation of road geometry |
JP6756320B2 (ja) | 2017-09-20 | 2020-09-16 | 株式会社ニューフレアテクノロジー | 描画データ生成方法、プログラム、マルチ荷電粒子ビーム描画装置、及びパターン検査装置 |
CN111610751B (zh) * | 2020-05-21 | 2023-07-28 | 天津工业大学 | 过点集nurbs插值曲线的插值误差多次细分迭代计算方法 |
CN112666944A (zh) * | 2020-12-18 | 2021-04-16 | 广东嘉腾机器人自动化有限公司 | 一种agv轨迹线的求值方法、存储设备和电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6124863A (en) * | 1992-04-29 | 2000-09-26 | Canon Kabushiki Kaisha | Object-based graphics system for displaying an image using explicit quadratic polynomial fragments |
DE4244462A1 (de) * | 1992-12-24 | 1994-06-30 | Equicon Software Gmbh Jena | Verfahren zur Generierung von ebenen technischen Kurven oder Konturen |
-
1992
- 1992-12-24 DE DE4244462A patent/DE4244462A1/de not_active Withdrawn
-
1993
- 1993-12-23 DE DE59310364T patent/DE59310364D1/de not_active Expired - Fee Related
- 1993-12-23 US US08/481,451 patent/US5717847A/en not_active Expired - Fee Related
- 1993-12-23 EP EP94902635A patent/EP0954618B1/de not_active Expired - Lifetime
- 1993-12-23 WO PCT/DE1993/001252 patent/WO1994015267A2/de active IP Right Grant
- 1993-12-23 JP JP6514689A patent/JPH08504984A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008062121A1 (de) * | 2008-10-02 | 2010-04-15 | Samsung Electro-Mechanics Co., Ltd., Suwon | Kameraeinheit mit Fahrkorridor-Anzeigefunktion für ein Fahrzeug, Verfahren zur Anzeige einer vorausberechneten Fahrzeugtrajektorie und System zur Generierung von Fahrkorridormarkierungen |
DE102008062121B4 (de) * | 2008-10-02 | 2010-10-07 | Samsung Electro-Mechanics Co., Ltd., Suwon | Kameraeinheit mit Fahrkorridor-Anzeigefunktion für ein Fahrzeug, Verfahren zur Anzeige einer vorausberechneten Fahrzeugtrajektorie und System zur Generierung von Fahrkorridormarkierungen |
US8063752B2 (en) | 2008-10-02 | 2011-11-22 | Samsung Electro-Mechanics Co., Ltd. | Camera unit with driving corridor display functionality for a vehicle, method for displaying anticipated trajectory of a vehicle, and system for generating driving corridor markers |
Also Published As
Publication number | Publication date |
---|---|
JPH08504984A (ja) | 1996-05-28 |
EP0954618A2 (de) | 1999-11-10 |
EP0954618B1 (de) | 2004-09-29 |
WO1994015267A3 (de) | 1994-08-18 |
US5717847A (en) | 1998-02-10 |
DE59310364D1 (de) | 2004-11-04 |
WO1994015267A2 (de) | 1994-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4244462A1 (de) | Verfahren zur Generierung von ebenen technischen Kurven oder Konturen | |
DE102009024130B4 (de) | Verfahren zur echtzeitfähigen Bahnplanung kontinuierlicher, rucksprungfreier Sollwerttrajektorien | |
DE3608438A1 (de) | Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc | |
DE10106023A1 (de) | Verfahren und Vorrichtung zur Kollisionserkennung von Objekten | |
DE102009019443A1 (de) | Kinematischer Annäherungsalgorithmus mit Regelfläche | |
DE3315148A1 (de) | Digitale sichtanzeigeeinrichtung | |
DE19513960A1 (de) | Abbildung eines Graphen in einen Speicher | |
EP2064672A2 (de) | Verfahren und vorrichtung zur bildverarbeitung | |
DE102014015278B4 (de) | Bearbeitungskurven-Erzeugungsvorrichtung und dazu gehöriges Bearbeitungskurven-Erzeugungsverfahren | |
DE3634024A1 (de) | Verfahren zur umwandlung von konturmustern | |
WO2023279125A1 (de) | Verfahren zum erstellen von simulationszellen für kontinuumsmechanische simulationen eines objekts | |
EP1537538B1 (de) | Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint | |
EP1316051B1 (de) | Verfahren zur veränderung der konstruktion eines bauteils | |
DE102021000349A1 (de) | Verfahren zum Betreiben einer technischen Anlage | |
DE69929757T2 (de) | Farbumwandlung | |
DE2631073C3 (de) | Vorrichtung zur Struktur- und Textur-Analyse zumindestens eines Mediums | |
DE3821322C2 (de) | ||
DE2323684A1 (de) | Vorrichtung zur erzeugung von steuersignalen fuer bewegungen in zueinander senkrechten richtungen | |
DE3920350A1 (de) | System zur bildung gekruemmter flaechen | |
DE4000021A1 (de) | Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen | |
EP3905095A1 (de) | Computer-implementiertes verfahren zur rechnerischen ermittlung und bereitstellung zumindest eines wertes zumindest eines parameters eines festkörpers | |
EP1459980B1 (de) | Verfahren zur rechnergestützten Ermittlung einer treibstoffoptimalen Ansteuerung von Düsen | |
DE3643713A1 (de) | Verfahren zum erzeugen der steuersignale fuer nc-werkzeugmaschinen | |
DE102022000530A1 (de) | Verfahren zur Geschwindigkeitsnivellierung inhomogen parametrisierter Bahnkurven - insbesondere Bézier-Kurven - zu deren dynamischen Nutzung in CAM-Prozessen (Computer Aided Manufacturing) durch Umparametrisierung nach Bogenlänge | |
WO2023079182A1 (de) | Verfahren zum erzeugen eines 3d-modells mit innenliegenden strukturen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8127 | New person/name/address of the applicant |
Owner name: SCHULMEISS, TRAUGOTT, 07747 JENA, DE |
|
8110 | Request for examination paragraph 44 | ||
8130 | Withdrawal |