NO843738L - Fremgangsmaate og innretning for presentering av en kurve med jevn bredde - Google Patents

Fremgangsmaate og innretning for presentering av en kurve med jevn bredde

Info

Publication number
NO843738L
NO843738L NO843738A NO843738A NO843738L NO 843738 L NO843738 L NO 843738L NO 843738 A NO843738 A NO 843738A NO 843738 A NO843738 A NO 843738A NO 843738 L NO843738 L NO 843738L
Authority
NO
Norway
Prior art keywords
curve
data
rectangle
segments
line
Prior art date
Application number
NO843738A
Other languages
English (en)
Inventor
Davis Yam
Original Assignee
Dicomed Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dicomed Corp filed Critical Dicomed Corp
Publication of NO843738L publication Critical patent/NO843738L/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Eye Examination Apparatus (AREA)

Description

Oppfinnelsen vedrører området datamaskinassistert grafikk. Mer særskilt vedrører oppfinnelsen en fremgangsmåte og en innretning for presentering av og tilveiebringelse av linjer eller kurver som har en bestemt jevn bredde.
Datamaskinassisterte eller- fremstilte grafiske systemer brukes innenfor mange områder, herunder informasjonsvisning, tilveiebringelse av bilder for fotografiske og trykkerimessige formål, og datamaskinassistert konstruksjon og fremstilling i forbindelse med et stort spekter av produkter og komponenter. En fremstilling av todimensjonale figurer via et visningsmedium foretas for tiden innenfor den datamaskinassisterte grafikk ved at det lagres store mengder av digitaliserte figurkoordinat-data. forhåndenværende systemer av denne type er beheftet med visse problemer med hensyn til størrelsen av lageret som er nødvendig for lagring av en bestemt figur, regnetiden for re-konstruering av figuren ut fra de lagrede data, og anvendelses-fleksibiliteten med hensyn til evnen å håndtere vilkårlige former, i motsetning til et begrenset antall bestemte former,
og fleksibilitet med hensyn til redigering og manipulering av disse former.
I disse tidligere kjente systemer blir kurvetilpassing eller glatting av figurdata, hvis sådant foretas, gjennomført som et etterbehandlingstrinn og ikke i sanntid mens figuren frem-stilles. Det store antall koordinater som kreves for å presen-tere en bestemt figur gjør det nødvendig med temporær lagring av en stor mengde data som krever en stor mengde av lagrings-media og en betydelig mengde av ekstra tid for behandling av de lagrede data.
Etter at de digitaliserte figurdata er lagret, må det benyttes algoritmer for å omdanne dataene til et akseptabelt format for presentasjon via et visningsmedium eller en betraktningsinnret-ning. Algoritmene som benyttes for dette formål, vil i sterk grad være avhengig av den database som benyttes for definering av figurene. Mange visningsformat, såsom raster og kjøreom-kodet, tillater ikke effektiv lineær transformering av de digitaliserte figurdata. Polygonal-tilnærmingsformat garanterer ikke glatte kanter ved en transformering. Videre er transfor-meringstiden relativ lang som følge av det faktum at samtlige figurdata må transformeres individuelt.
Disse begrensninger ved de tidligere kjente datamaskinassisterte grafikksystemer gjør seg særlig gjeldende innenfor foto-typesetting, hvor en høyhastighetsoperasjon og evnen til en sann gjengivelse av karakter-typesnitt og spesialsystemer har støtt på begrensninger ut fra disse kriterier.
Det har vært foreslått en fremgangsmåte og en innretning for presentering av en todimensjonal form på et medium og som ga en løsning på mange av de ovenfor nevnte problemer. Man har imidlertid problemet i forbindelse med en fremstilling av en kurve eller en todimensjonal form med jevn bredde, eksempelvis en grenselinje rundt en todimensjonal form. I tillegg foreligger det et problem i forbindelse med å holde kurvebredden jevn under skallering, rotering, omforming etc. av den todimensjonale form.
Foreliggende oppfinnelse løser disse og mange andre problemer
i forbindelse med datamaskinassistert grafikk.
Oppfinnelsen vedrører en fremgangsmåte og en innretning for tilveiebringelse av en grafisk presentasjon av en kurve med en jevn bredde. Oppfinnelsen benytter et sett av datapunkter som i hovedsaken ligger langs kurven ved å konvertere datapunktene til annengrads parametriske ligninger som definerer flere tilstøtende kurvesegmenter som utgjør en god tilnærming av kurven. Oppfinnelsen vedrører videre en fremgangsmåte og en innretning for konvertering av kurvesegmentene til rette linjesegmenter, og definerer, i forbindelse med hvert av de rette linjesegmenter, hjørnene i et rektangel som har en bredde
lik kurvens bredde.
Et særlig fordelaktig trekk ved oppfinnelsen er muliggjørelsen av lett skallering, rotering, omforming etc. av grafiske pres-entasjoner mens den forekommer på et medium, uten derved å for-styrre den jevne bredden.
Disse og andre fordeler og trekk som kjennetegner oppfinnelsen er fremhevet i patentkravene. Oppfinnelsen skal med sine fordeler og oppnådde hensikter beskrives nærmere i det etterfølg-ende, under henvisning til tegningene hvor:
Fig. 1 viser et bilde av bokstaven "s",
fig. 2 viser en kurveserie-representasjon av bokstaven "s",
fig. 3 viser et skjema for et datamaskinassistert grafikk-system,
fig. 4 viser en representasjon av bokstaven "s"-inndata mottatt
fra en innenhet,
fig. 5 viser en representasjon av tre segmenter Sl, S2, S3,
fig. 6 viser en representasjon av to hosliggende knutepunkter
og deres tilhørende kontrollpunkter,
fig. 7 viser en representasjon av en kontrollinjeorientering, fig. 8 viser en representasjon av en Bezier-kurve mellom to
hosliggende knutepunkter,
fig. 9 viser en skjematisk representasjon av kontrollpunkter
og knutepunkter som danner en bokstav "s",
fig.10 viser en skjematisk representasjon av en Bezier kurve-deviasjon fra aktuelle inndata,
fig.11 viser en skjematisk representasjon av Bezier kurve-splittingen,
fig.12 viser en skjematisk representasjon av avstandsberegningen mellom en del av enBezier kurve og en korresponderende polygon rettlinje-segmenttilnærming,
fig.13 viser en skjematisk representasjon av en rektangel-redigering,
fig. 14 viser en skjematisk representasjon av en rektangel- og sirkelredigering,
fig.14a, b viser skjematiske representasjoner av en polygon-definisjon for sirkler,
fig. 15 viser en skjematisk representasjon av en lukket kurve, fig. 16 viser en skjematisk representasjon av en kurvemodifik-asj on,
fig. 17 viser en skjematisk representasjon av en hjørne-modifikasj on,
fig. 18 viser en skjematisk representasjon av en behandlingssekvens i følge oppfinnelsen, og
fig. 19-22 viser eksempler på kurveserie-redigeringer.
I denne sak skal en kurveserie defineres som flere med hverandre forbundne kurver, hvor kurvene defineres av annengrads parametriske Bezier-kurver og rette linjesegmenter. Oppfinnelsen tilveiebringer et datamaskinbasert system for tilveiebringelse av en kurveserie med i hovedsaken jevn og bestemt bredde.
I fig. 1 er det vist en vilkårlig form, i dette tilfelle en figur som tilnærmet ligner bokstaven "s". I fig. 2 er vist en kurveserie-representasjon av bokstaven "s". Kurveserien dannes av flere hjørner eller knutepunkter 22 som er forbundne med hverandre ved hjelp av flere kurver 24. I dette eksempel fore-finnes det seks kurver 24 og syv knutepunkter 22. Oppfinnelsen muliggjør å gi kurveserien i fig. 2 en jevn bredde for dermed å oppnå en god tilnærming til bokstaven "s" som vist i fig. 1.
Som vist i fig. 3 fåes todimensjonal-figurdata vanligvis fra
en innenhet 26, såsom et digitaliseringsbord. Figurdataene be-handles i en regnemaskin 28 i samsvar med oppfinnelsen, hvilken regnemaskin i en utførelsesform er en PDP 11/34 eller PDP 11/23. De resulterende data går til et visningsmedium 30 for visuell presentering av figuren som data er mottatt og behandlet for. Eksempler på visningsmedia er en bufferskjerm med raster-skandering, filmapparater, plottere etc.
I en utførelsesform av oppfinnelsen fåes figurdata fra
et digitaliseringsbord. Råfigurdata representerer koordinatpunkter 32 som er representative for den figur som er vist i fig. 4, hvor det er vist data for figuren "s". Når figur-koordinatdataene 32 er tilveiebragt, beregnes stigningen mellom to hosliggende punkter. Disse koordinater, som bestemmes som X-maksimum eller -minimum, Y-maksimum eller -minimum, vendepunkter, og start- og endepunkter, tas vare på og bestemmes som knutepunkter 22. For å bestemme hvorvidt det foreligger et vendepunkt må stigningsdata (Sl, S2, S3) for tre etter hverandre følgende par av punkter 32 bestemmes. Hvis en av de etter-følgende betingelser tilfredsstilles, foreligger et vendepunkt:
Når et vendepunkt er bestemt benyttes midtpunktet 23 til det midtre segment med stigningen S2 som det aktuelle vendepunkt og bestemmes som knutepunktet 22. I fig. 5 er det vist eksempel på den første betingelse.
I fig. 6 er det vist en gruppe av datapunkter 32, hvorav to er knutepunkter 22. På et vilkårlig tidspunkt under behandlingen av figurdataene forvares datapunkter 32 som ligger på en strekning mellom hosliggende knutepunkter 22, og det samme gjelder for et datapunkt 32 på hver side av denne strekning. Når to hosliggende knutepunkter 22 er bestemt, bestemmes et stigning-kontrollpunkt 36 i krysspunktet mellom to kontrollinjer eller bånd 38. kontrollpunktet 36 ligger således i hjørnet til et triangel 40 som bestemmes av de kontrollinjer 38 som forbinder knutepunktene 22 med kontrollpunktet 26, og en grunnlinje 42 som forbinder knutepunktene 22 med hverandre.
Som vist i fig. 7 har hver kontrollinje 38 samme stigning som og går parallelt med en linje 39 mellom datapunktene 32 på hver side av det'knutepunkt 22 hvorigjennom ledningen 38 går. De to knutepunkter 22 og kontrollpunktet 36 kan så benyttes for å definere en Bezier-kurve 44 som vist i fig. 8, hvilken kurve approksimerer begrensningskurven mellom hosliggende knutepunkter 22, som definert av datapunktene 32. Kontrollpunktet 36 og knutepunktene 22 lagres i hukommelsen og datapunktene 32 vrakes, med unntak av datapunktet 32 som ligger umiddelbart foran det siste bestemte knutepunkt 22.
Etterfølgende data-koordinatpunkter 22 forvares så helt til et'etterfølgende knutepunkt 22 bestemmes. Når så er skjedd foretas en behandling med dette datasett. Behandlingen fortsetter for hvert par knutepunkter 22 som bestemmes, helt til hele om-hyllingen for kurveserien er definert og/eller avsluttet av operatøren.
Hver Bezier-kurve 44 er en tangent til kontrollbåndene 38 ved knutepunktene 22. Bezier-kurven mellom hosliggende knutepunkter 22 bestemmes av følgende parametriske ligninger: hvor Z varierer fra 0 til 1 og hvor Pg, P^, V^, Qq, Q^, £?2 defineres som følger:
Som vist i fig. 9 vil knutepunktene 22 og kontrollpunktene 36 som er lagret i hukommelsen bestemme kurveserien, i dette tilfelle kurveserien som representerer bokstaven "s". Punktene antyder formen til de resulterende Bezier-kurver 44.
Den ovenfor beskrevne kurvetilpassings-behandling utføres i sanntid når figurdataene mottas fra innenheten. I en annen utførelsesform av oppfinnelsen tilveiebringes det selektive figurdata som oppbevares i hukommelsen for senere ønsket behandling .
Det endelige datasett som oppbevares i hukommelsen for presentering av en gitt kurveserie innbefatter samtlige bestemte knutepunkter 22 og deres tilhørende kontrollpunkter 36. Dette krever meget mindre lagerplass enn lagringen av samtlige figur-datapunkter 32 og minimaliserer forsinkelser som skydes behandlingen av et slikt stort datasett. Videre reduseres det datasett som krever transformeringsbehandling for fremvisnings-formål, og det blir lettere å arbeide med. I tillegg kan en glatt figuromhylling presenteres for en hver resolusjon i visningsmediet.
I en utførelsesform av oppfinnelsen, når en strekning mellom knutepunktet 22 er ferdig, sammenlignes den resulterende Bezier-kurve 44 med de korresponderende figurdata 32. Er av-viket større enn en bestemt terskelverdi så adderes et knutepunkt 22 og Bezier-kurven deles opp i to Bezier-kurver. De resulterende Bezier-kurver testes på lignende måte rekursivt helt til terskelverdien er nådd. For å redusere regnemaskin-arbeidet i forbindelse med genereringen av den aktuelleBezier-kurve for tilpassingstesten, som utføres i sanntid, benyttes egenskapene til Bezier-polygonet (triangelet) for estimering av det maksimale avvik fra de aktuelle data. Som indikert i fig. 10 kan det raskt ut fra triangelgeometrien beregnes et kurvepunkt 46 med maksimal Bezier-kurveavstand fra trigangel-ets 40 grunnlinje 42. Punktet 48 for den maksimale figurdata- forskyvning fra triangelets 40 grunnlinje 42 beregnes lett ved å sjekke krysningen mellom en linje 50 og en linje 52, som strekker seg fra et kontrollpunkt 36 til et punkt midt på triangelets 40 grunnlinje 42. Linjen 50 bestemmes av de to datapunkter 32 som ligger nærmest linjen 52 og på hver sin side derav. Avstanden mellom punktene 46 og 48 blir så bereg-net og sammenlignet med den bestemte terskelverdi for å fast-slå hvorvidt en deling er nødvendig.
Er en deling nødvendig så legges et knutepunkt 22a inn ved punktet 46, og det bestemmes så kontrollpunkter 36a, b på hver side, idet disse kontrollpunkter bestemmes som krysspunktene mellom linjen 50 og sidene 38 i triangelet 40, se fig. 11. Bezier-kurveberegningen kan så utføres for hver av de to nye Bezier-kurver 44a, b og sammenlignes med den bestemte terskelverdi. Ytterligere oppsplitting av Bezier-kurven kan skje rekursivt helt til terskelverdien er nådd og man har oppnådd den ønskede tilpasningsnøyaktighet mellom Bezier-kurvene 44 og datapunktene 32.
Mange visningssystemer benytter polygoner som billedelement. Det er derfor nødvendig i slike tilfeller å konvertere kurveseriedataene som innbefatter hjørnene 22 og kontrollpunktene 36 til polygondata, som så kan utnyttes som billedelementer.
En måte å gjøre dette på er å konvertere kurveseriedataene til en serie av rette linjesegmenter som så kan konverteres til polygondata. Polygondataene innbefatter koordinatene til poly-gonhjørnene. Koodinatene til polygonhjørnene utledes ved substituering av like trinnverdier av Z mellom 0 og 1 i de parametriske ligninger for Bezier-kurvene som danner kantene til de representerte kurveserier.
Den resulterende polygon må ha et tilstrekkelig antall hjørner slik at polygonkantene vil fremkomme glatte i visningsenheten. Imidlertid bør antall hjørner som trengs pr. Bezier-kurve 44 mellom hosliggende knutepunkter 22 for et utglatte utseende holdes på et minimum for derved å redusere regnemaskintiden for generering av hjørnelisten, klipping av den resulterende polygon, og avsøkingslinje-omdanningen av polygonet. Det minste antall hjørner som kreves for å gi et glatt utseende vil være avhengig av visningsenhetens oppløsning, avstanden mellom knutepunktene, krumningsradien i hvert punkt langs strekningen mellom knutepunktene, etc.
I en utførelsesform av oppfinnelsen, som vist i fig. 12, er antall hjørner eller rette linjesegmenter som kreves for en gitt Bezier-kurve bestemt ved å måle avstanden E mellom et punkt C på Bezier-kurven 44 mellom to hosliggende hjørner Vq, og et punkt L som ligger på et polygonlinjesegment 86 mellom hjørnene VQ, . X, Y koordinatene for C og L (Cx, Cy) og (Lx, Ly) bestemmes ved hjelp av de parametriske ligninger som definerer Bezier-kurven, idet punktene C og L representerer en trinnverdi av Z som bare er halvparten av den mellom hjørn-ene Vq , :
Z = trinn i parameter Z
(Man skal her merke seg at det uten generalitetstap antas at Pq = Qq = 0, og at segmentet er det første i en rekke av segmenter).
Forskjellen i X koordinater er:
Forskjellen i Y koordinater er:
Avstanden E mellom punktene C og L kan således uttrykkes som:
Denne ligning kan skrives slik:
Ved å velge en verdi for avstanden E, kan antall rette linjesegmenter som kreves for en gitt Bezier-kurve bestemmes som foran. Typisk vil en avstand E være en halvpart av et raster-trinn. Når avstanden E = 1/2, vil antall rette linjesegmenter eller trinn være:
Dersom bestemmelsen av antall rette linjesegmenter skal skje ved lager- eller sidekoordinatoppløsningen, som eksempelvis har 16 bitpresisjon, og utmatingen har bildeflateoppløsning, som kan være 640 x 432, og side-bildeflateomdanningen er
Xbildeflate = Xside (XSN/XSD)
Ybildeflate = Yside (XSN/YSD)
så vil antall linjesegmenter være:
CEILING SQRT SQRT ((XSN P2/XSD)<2>+ (YSN Q2/YSD)<2>)/2 hvor CEILING vil avrunde et reelt tall oppover. Dersom bare hele tall benyttes, så vil antall linjesegmenter være: [SQRT SQRT ((XSN P2/XSD) 2 + (YSN Q2/YSD)2 )/2]+1 Basert på medlemmene av linjesegmenter (NSTEP), vil trinnet i parameteren lett kunne beregnes som 1/NSTEP og hjørnene til linjesegmentene kan beregnes ved å sette trinnverdier for Z inn i den parametriske ligning for Bezier-kurven.
For å påskynde beregningsprosessen kan en størrelses-beregningsmetode som vist nedenfor benyttes for approksimering av medlemmer av linjesegmenter for derved å unngå multi-plikasjoner, dobbelpresisjon-aritmetikk og gjentagelser.
Hvor: MAG = den største av MAX eller (7/8 MAX + 1/2 MIN)
MAX = den største av P eller Q 2
MIN = minste av P^eller Q^
Newton Raphson's metode kan så benyttes for bestemmelse av antall rette linjer eller trinn. Den ovenfor nevnte størrelse-beregningsmetode har en maksimalfeil på ca. 3%. Beregningen er invariant med hensyn på rotasjon.
Så snart kurveseriedataene, med hjørner eller knutepunkter 22 og kontrollpunkter 36, er omdannet til linjesegmentene 86, sørges det ifølge oppfinnelsen for at linjesegmentene 86 eks-panderer slik at de enkelte kurver i kurveserien gis en bestemt bredde. Som vist i fig. 13, basert på en bestemt bredde W
som er valgt av en operatør eller bestemt automatisk på forhånd, sørges det ifølge oppfinnelsen for definisjonen av et rektangel 100 med bredden W langs hvert av linjesegmentene 86 i Bezier-kurvene 44. Linjesegmentene deler sine tilhørende rektangler 100 i to like deler som hver har en bredde på h W og krysser endene 102 til rektanglene 100 med en vinkel på 90°, altså perpendikulært. Bestemmelsen av de fire hjørnene i hvert av rektanglene 100 skjer på følgende måte:
Gitt: (XS, YS) = startpunktet for linjesegmentet
(XE, YE) = sluttpunktet for linjesegmentet W = linjebredden til linjesegmentet
De fire punktene i rektangelet:
XR(1), YR(1)
XR(2), YR(2)
XR(3), YR(3)
XR(4), YR(4)
De fire punktene i det tilhørende rektangel beregnes på følg-ende måte:
Dersom operatøren forlanger det, blir endene til hvert rektangel 100 glattet og avrundet, slik at de hosliggende regtangler 100 når de er innrettet ende mot ende danner en kurve med en bestemt bredde W. Dette skjer ved å bestemme hjørnene til polygoner som representerer omkretsen til sirkler 104 med en radius på W/2 og sentrert i hvert av hjørnene V0, VI, V2, V3, som vist i fig. 14.
Polygonene som er representative for sirklene 104 kan så vises under utnyttelse av en skanderings-omdannelsesalgoritme. Polygonbestemmelsen skjer som følger:
Gitt:(Xc, Yx) = koordinatoren til sirkelens senter
R = sirkelens radius
Sett: XP(1), YP(1) = første hjørne i polygonen
(se fig. 14a)
XP(n), YP(n) = n1 te polygonhjørne
n = antall hjørner i polygonet
Beregning av n ( hjørneantall):
OBS I n må være et heltall, så avrund resultatet oppover.
Oppløsingen av ligningen skjer som følger )se fig. 14b):
Sett e = H ( h er billedelementfeil i utmatingsenhetens
oppløsning).
XP( i), YP( i) beregnes som følger:
En kurveserie kan således omgjøres til en kurve med en bestemt bredde ved at det tilveiebringes en grafisk representasjon av en dodimensjonal form; eksempelvis kan kurveserien i fig. 2 omfannes slik at den fremkommer som bokstaven "s" i fig. 1.
Operatøren kan også forlange kurveserien lukket og ikke åpen som i fig. 13. Som vist i fig. 15, dersom en lukket kurveserie er forlangt, vil man med oppfinnelsen kunne forbinde første og siste hjørne VO, V3 i fig. 15 med en rett linje 106 og tilhørende rektangel og avrunde hjørnene, dersom det forlanges av operatøren.
I den foretrukne utførelsesform av foreliggende oppfinnelse, ved begynnelsen av en omgående sekvens, kan operatøren velge følgende parametre:
1. Farger for seriepresentasjonen.
2. Kurveseriebredde.
3. Åpen eller lukket kurveserie.
4. Punkt- eller linjeinnmating.
5. kurve eller rett seksjon.
De fire første parametre har allerede vært diskutert. Den femte parameter indikerer hvorvidt Bezier-kurvene skal bestemmes eller de individuelle data skal forbindes med rette linjer. Dersom man velger punktinnmating, så markerer operatør-en manuelt hvert sted i innenheten som skal benyttes for bestemmelsen av Bezier-kurven i figuren. Ved linjeinnmating gis figurdata periodisk til behandlingsenheten.
Foreliggende oppfinnelse gir videre mulighet for å kunne bevege eller forskyve en grafisk representasjon av en figur i visningsmediet ved å utføre en translasjon eller trans-formasjon av hjørnene 22 og kontrollpunktene 36 som følger:
Hvor TX og TY er translasjonsfaktorer for X og Y koordinatene. Videre kan skaleringstransformasjon utføres for alle hjørner og kontrollpunkter i kurveserien, som følger:
Hvor SX og SY er skaleringsfaktorer for X og Y koordinatene.
Kurveserien kan også roteres om et referansepunkt XR, YR, over en vinkel A ved å foreta en rotasjon om samtlige hjørner og kontrollpunkter som følger:
Den foretrukne utførelse av foreliggende oppfinnelse gjør det videre mulig for en operatør å velge en kurveserie i en vis-ningsenhet. Operatøren indikerer en koordinatposisjon på skjermen, eksempelvis ved bruk av markør. Kurveseriedata for hver kurveserie i visningsenheten omdannes til rektangel- og delsirkeldata som reflekterer en kurveserie med bestemt bredde. Det foretas så en sjekk for å finne i hvilket rektangel eller
i hvilken delsirkel en koordinatposisjon finnes. Operatøren kan så gjennomføre den ønskede operasjon med den valgte kurveserie .
Videre muliggjør den foretrukne utførelsesform av oppfinnelsen at operatøren kan modifisere en kurveseriefigur ved enten å modifisere kurvepunktene 46 eller hjørnene 22. Som vist i fig. 16 og 17 vil en modifisering av punktene 46 og hjørnene 22 gi varierende resultater på kurveserien. Dette skjer ved at operatøren beveger en markør langs hjørnene 22 og kurvepunktene 46 i en kurveserie. Når markøren er plassert over det valgte kurvepunkt eller hjørne kan operatøren bevege markøren til det ønskede nye sted og legge inn koordinatstillingen til markøren. Det valgte punkt beveges så til det utpekte sted, og resultatet er en modifisering av kurveserien, som vist i fig. 16 og 17.
Fig. 18 viser et eksempel på en behandlingssekvens ved deter-minering av kurveseriehjørnet 22 og kontrollpunktet 36 ved hjep av en figuropptegning i en grafikkenhet. Som vist ved trinnet 60 må først de beskrivende data for kurveserien bestemmes, som foran diskutert. Deretter utføres det i trinnet 62 transforma-sjoner såsom skalering, translasjon, perspektiver, rotasjon etc., under utnyttelse av velkjente transformeringsrutiner.
Det er viktig her å merke seg at en signifikant reduksjon i behandlingen oppnås ved å utføre transformasjonene med kurveseriedata som representerer et minimum-datasett før omdanningen av datasettet til et polygon-datasett, som er et ekspandert datasett. Deretter, som vist i trinn 64, foretas det en transformering til skjermkoordinater. Dette kan skje ved hjelp av en av flere velkjente omdannelsesmetoder. I trinnet 65 blir Bezier-kurvene 44 omdannet til linjesegmenter, og i trinnet 66 beregnes de tilhørende rektangler og "kakestykker" eller sirkler. I trinnet 67 omdannes dataene og ekspanderes til polygondata som beskrevet foran. Så snart polygondata er etablert kan det i trinnet 68 benyttes velkjente klippings-algoritmer for klipping av deler av polygondata som ikke skal vises i visningsenheten. Til slutt foretas det i trinnet 70 en skander-ingslinje-omdanning av polygondata. I trinnet 72 vises figur-representasjonen i grafikkenheten.
I nok en utførelsesform av oppfinnelsen benyttes det et trekk som muliggjør innsetting, utelatelse og modifisering av Bezier-kurver 44, hvorved man kan redigere den totale kurveserieform. Dette trekk innbefatter glatting av overgangen mellom to hosliggende Bezier-kurver 44. Som vist i fig. 19-22 og 20, er det fire slike overgangstyper, nemlig kurve-kurve, kurve-linje, linje-kurve, og linje-linje.
Som vist i fig. 19 dannes to nye Bezier-kurver 44a ved å bevege kontrollpunktene 36 langs et kontrollbånd 38 for dannelse av nye kontrollpunkter 3 6a. De nye kontrollpunkter 3 6a ligger i krysspunktet med en linje 82a som går gjennom knutepunktet 22a og kontrollbåndet 38 og er parallelt med linjen 82 mellom kontrollpunktene 36. De nye kurver 44a vil således være de resulterende Bezier-kurver som bestemt av hvert sett av knutepunkter 22 og 22a og deres tilhørende kontrollpunkt 36a. I fig. 20 dannes en ny kurve 44a ved å bevege kontrollpunktet 36 langs kontrollbåndet 38 for dannelse av et nytt kontrollpunkt 36 der hvor linjen 80 krysser kontrollbåndet 38. Den samme prosess utføres i fig. 21 hvor det foreligger en overgang mellom en linje 80 og en Bezier-kurve 44. I fig. 22 benyttes et knutepunkt 22a der hvor to linjer 80 møter hverandre som et nytt kontrollpunkt for en ny kurve 44a. De foran nevnte trekk mulig-gjør således en modifisering av en kurveserie slik at den mer nøyaktig gjengir den ønskede form.
Med foreliggende oppfinnelse er det således tilveievbragt en fremgangsmåte og en innretning for grafisk presentering av en kurve eller en todimensjonal figur med en bestemt og jevn bredde. Videre muliggjør oppfinnelsen skalering, rotasjon, gjenforming, etc. av den todimensjonale form, med bibehold av den jevne bredde. I tillegg gir oppfinnelsen også mulighet for en grafisk representasjon av en todimensjonal form med jevn bredde og med en relativ glatt omhylling.

Claims (4)

  1. <1> Fremgangsmåte for grafisk presentasjon av en todimensjonal form med jevn bredde i et egnet medium, karakterisert ved følgende trinn: det tilveiebringes et sett av datapunkter som i hovedsaken er plassert langs en longitudinal senterlinje i den todimensjonale form, disse datapunkter omdannes til andre sett av data for annen grads eller høyere parametriske .ligninger som definerer flere tilstøtende kurver som har sterk approksimasjon til senter-linj en, dette andre datasett omdannes til flere linjesegmenter som utgjør sterk approksimering til hver av de nevnte tilstøtende kurver, for hvert linjesegment defineres det fire hjørner i et rektangel med en forutbestemt jevn bredde, idet hvert av disse rektangler deles av det tilhørende linjesegment i to i hovedsaken like deler, hvilke rektangler i hovedsaken definerer den todimensjonale form, det foretas en glatting av overgangen mellom rektanglene, og det tilveiebringes en grafisk presentasjon av den nevnte todimensjonale form utfra de glattede rektangeldata.
  2. 2. Grafikkinnretning for grafisk presentasjon av en todimensjonal form i et medium, karakterisert ved at den innbefatter: en innenhet for innmating av et sett av datapunkter som er plassert i hovedsaken langs en linje med en longitudinal form lik den todimensjonale form, kontrollmidler for omdannelse av datapunktene til andre sett av data for annen grads eller høyere parametriske ligninger som definerer flere tilstøtende kurvesegmenter som har sterk approksimasjon til linjen, andre kontrollmidler for omdannelse av hvert av de nevnte kurvesegmenter til ett eller flere rette linjesegmenter, tredje kontrollmidler som for hvert av de nevnte linjesegmenter definerer hjørner tilhørende et rektangel, hvilke rektangler har sterk approksimasjon til den todimensjonale form, og midler for presentering av rektangelhjørnedataene i et medium for derved å gi en sterk approksimasjon av den todimensjonale form.
  3. 3. Innretning ifølge krav 2, karakterisert ved at den innbefatter femte kontrollmidler for glatting av rektangelendene.
  4. 4. Fremgangsmåte for tilveiebringelse av en grafisk presentasjon av en kurve med jevn bredde, karakterisert ved følgende trinn: det tilveiebringes et sett av datapunkter i hovedsaken langs kurven, de nevnte datapunkter omdannes til andre sett av data for annen grads eller høyere parametriske ligninger som definerer flere tilstøtende kurvesegmenter med sterk approksimasjon til kurven, hvert av de nevnte segmenter omdannes til ett eller flere rette linjesegmenter med sterk approksimasjon til de nevnte tilhørende kurvesegmenter, i forbindelse med hvert av de nevnte rette linjesegmenter foretas det en bestemmelse av hjørnene i et rektangel som har en bredde lik bredden til kurven, og disse rektangelhjørner utnyttes for i et medium å tilveiebringe et todimensjonalt bilde med en jevn bredde, representativt for den ønskede kurvebredde.
NO843738A 1983-01-20 1984-09-19 Fremgangsmaate og innretning for presentering av en kurve med jevn bredde NO843738L (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/459,394 US4620287A (en) 1983-01-20 1983-01-20 Method and apparatus for representation of a curve of uniform width

Publications (1)

Publication Number Publication Date
NO843738L true NO843738L (no) 1984-09-19

Family

ID=23824594

Family Applications (1)

Application Number Title Priority Date Filing Date
NO843738A NO843738L (no) 1983-01-20 1984-09-19 Fremgangsmaate og innretning for presentering av en kurve med jevn bredde

Country Status (12)

Country Link
US (1) US4620287A (no)
EP (1) EP0134809B1 (no)
JP (1) JPS60500385A (no)
CA (1) CA1207913A (no)
DE (1) DE3485316D1 (no)
DK (1) DK443284A (no)
ES (1) ES8702680A1 (no)
FI (1) FI843697L (no)
IL (1) IL70735A0 (no)
NO (1) NO843738L (no)
WO (1) WO1984002993A1 (no)
ZA (1) ZA84444B (no)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6074003A (ja) * 1983-09-30 1985-04-26 Ryozo Setoguchi 形状創成装置
CA1255021A (en) * 1985-03-12 1989-05-30 Toshihiko Hata Image describing apparatus
CA1274919C (en) * 1985-07-27 1990-10-02 METHOD AND DEVICE FOR FORMING CURVE SURFACES
NL8503461A (nl) * 1985-12-17 1986-04-01 Oce Nederland Bv Werkwijze voor het genereren van lijnstukken.
US4875033A (en) * 1986-06-05 1989-10-17 Mitsubishi Denki Kabushiki Kaisha Graphics input apparatus
US4797836A (en) * 1986-11-19 1989-01-10 The Grass Valley Group, Inc. Image orientation and animation using quaternions
US5644654A (en) * 1987-04-06 1997-07-01 Canon Kabushiki Kaisha Image processing apparatus capable of efficient coding of complex shape information
GB2204767B (en) * 1987-05-08 1991-11-13 Sun Microsystems Inc Method and apparatus for adaptive forward differencing in the rendering of curves and surfaces
EP0342752B1 (en) * 1988-05-20 1997-08-06 Koninklijke Philips Electronics N.V. A computer method and an aparatus for generating a display picture representing a set of object elements including a brush object element
JP2790815B2 (ja) * 1988-08-10 1998-08-27 株式会社リコー 画像データ圧縮方法
US5261032A (en) * 1988-10-03 1993-11-09 Robert Rocchetti Method for manipulation rectilinearly defined segmnts to form image shapes
AU624137B2 (en) * 1988-10-03 1992-06-04 Sun Microsystems, Inc. Method and apparatus for image manipulation
AU629210B2 (en) * 1988-10-26 1992-10-01 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces
JP2833654B2 (ja) * 1988-11-11 1998-12-09 キヤノン株式会社 図形処理装置
US5241654A (en) * 1988-12-28 1993-08-31 Kabushiki Kaisha Toshiba Apparatus for generating an arbitrary parameter curve represented as an n-th order Bezier curve
US5179647A (en) * 1989-01-09 1993-01-12 Sun Microsystem, Inc. Method and apparatus for implementing adaptive forward differencing using integer arithmetic
EP0378754A3 (en) * 1989-01-19 1992-03-18 Hewlett-Packard Company Polygon smoothing method
US5086482A (en) * 1989-01-25 1992-02-04 Ezel, Inc. Image processing method
US5208904A (en) * 1989-03-07 1993-05-04 Brother Kogyo Kabushiki Kaisha Data processing apparatus and method for preparing data representative of supplemental figure attached to basic figure reproduced on output medium
JP2621463B2 (ja) * 1989-03-07 1997-06-18 ブラザー工業株式会社 図形処理装置
US4991115A (en) * 1989-05-16 1991-02-05 Excellon Industries, Inc. Method of mapping geometric entities from a continuous plane to a discrete plane
JPH0378795A (ja) * 1989-08-22 1991-04-03 Toshiba Corp 文書作成装置
JPH03121575A (ja) * 1989-10-04 1991-05-23 Stanley Electric Co Ltd 曲線近似方法および曲線の記憶方法
US5471573A (en) * 1989-12-07 1995-11-28 Apple Computer, Inc. Optimized scan conversion of outlines for generating raster images
JPH03259296A (ja) * 1990-03-09 1991-11-19 Canon Inc パターン発生装置
GB2244892B (en) * 1990-06-08 1994-12-14 Electronic Graphics Ltd Computer graphics
GB2248754A (en) * 1990-06-13 1992-04-15 Rank Cintel Ltd Electronic painting system
JPH0810467B2 (ja) * 1990-06-14 1996-01-31 ゼロックス コーポレイション ストロークに相当する輪郭線を迅速に生成する曲線近似方法
JPH0458378A (ja) * 1990-06-28 1992-02-25 Mitsubishi Heavy Ind Ltd ベジエ曲線を分割して展開する方法
JP3189276B2 (ja) * 1990-09-12 2001-07-16 ブラザー工業株式会社 データ変換装置
JP2522107B2 (ja) * 1990-10-17 1996-08-07 株式会社精工舎 曲線近似方法
JP2522108B2 (ja) * 1990-10-17 1996-08-07 株式会社精工舎 曲線近似方法
GB2256118A (en) * 1991-05-21 1992-11-25 Cambridge Animation Syst Image synthesis and processing
JPH06505817A (ja) * 1990-11-30 1994-06-30 ケンブリッジ アニメーション システムズ リミテッド 画像合成及び処理
GB2253772B (en) * 1991-03-12 1995-01-25 Honda Motor Co Ltd Method of creating solid model
JPH06507742A (ja) * 1991-05-21 1994-09-01 ケンブリッジ アニメーション システムズ リミテッド 動画作成装置
JPH0512442A (ja) * 1991-07-02 1993-01-22 Hitachi Software Eng Co Ltd 線画像追跡方法
US5325477A (en) * 1991-12-02 1994-06-28 Xerox Corporation Method and apparatus for generating and displaying freeform strokes
US5592599A (en) * 1991-12-18 1997-01-07 Ampex Corporation Video special effects system with graphical operator interface
US5280576A (en) * 1991-12-24 1994-01-18 Xerox Corporation Method of adjusting the weight of a character of an outline font
US5341467A (en) * 1991-12-30 1994-08-23 Xerox Corporation Method and apparatus for generating and displaying freeform strokes of varying or constant width using adaptive forward differencing
US5353396A (en) * 1992-06-04 1994-10-04 Altsys Corporation System and method for generating complex calligraphic curves
US5367617A (en) * 1992-07-02 1994-11-22 Microsoft Corporation System and method of hybrid forward differencing to render Bezier splines
US5363479A (en) * 1992-07-02 1994-11-08 Microsoft Corporation System and method for rendering bezier splines
US5333248A (en) * 1992-07-15 1994-07-26 International Business Machines Corporation Method and system for the smooth contouring of triangulated surfaces
EP0604685A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters
US5542030A (en) * 1993-06-14 1996-07-30 Electronic Data Systems Corporation System and method for optimizing surface projections during generation of finite element representations of objects
JP2571662B2 (ja) * 1993-09-01 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション 線描画方法及び装置
JPH07182537A (ja) * 1993-12-21 1995-07-21 Toshiba Corp 図形描画装置および図形描画方法
US5594852A (en) * 1994-08-17 1997-01-14 Laser Products, Inc. Method for operating a curve forming device
CA2167237A1 (en) * 1995-02-17 1996-08-18 Steven Charles Dzik Line smoothing techniques
KR0172581B1 (ko) * 1996-04-02 1999-03-30 이진기 단계적 표현 가능형 폰트 그 변환 방법 및 렌더링 방법
JP3373750B2 (ja) * 1997-02-19 2003-02-04 松下電器産業株式会社 交差点道路案内表示装置及び表示方法
US6208355B1 (en) * 1998-04-07 2001-03-27 Adobe Systems Incorporated Sketch-based editing of curves
US6674435B1 (en) * 1998-09-16 2004-01-06 Texas Instruments Incorporated Fast, symmetric, integer bezier curve to polygon conversion
US6535213B1 (en) * 1998-09-22 2003-03-18 Sony Corporation Curve edition system, curve-loop detecting system, curve-loop removing system
JP3330090B2 (ja) * 1998-09-30 2002-09-30 松下電器産業株式会社 臓器境界抽出方法および装置
EP1187066A3 (en) * 2000-09-01 2004-04-21 Sony Computer Entertainment Inc. Method and apparatus for image enlargement/reduction
EP1562138B1 (en) * 2004-02-06 2009-08-19 Dassault Systèmes A process for drafting a curve in a computer-aided design system
DE102005047838A1 (de) * 2005-10-05 2007-04-12 Murrplastik Systemtechnik Gmbh Verfahren zum Ansteuern eines Beschriftungsgeräts
US8466918B2 (en) * 2006-09-28 2013-06-18 Bissantz & Company Gmbh Method for generating a font-based sparkline
US8305378B2 (en) * 2008-08-21 2012-11-06 Pacific Data Images Llc Method and apparatus for approximating hair and similar objects during animation
DE102008057512A1 (de) * 2008-11-15 2010-07-01 Diehl Aerospace Gmbh Verfahren zur Darstellung von Linienzügen
KR20120095852A (ko) * 2009-10-15 2012-08-29 스마트 테크놀러지스 유엘씨 디스플레이 표면상에서 손글씨 잉크 객체를 그리기 및 지우기 하는 방법 및 장치
US10347016B2 (en) * 2016-01-12 2019-07-09 Monotype Imaging Inc. Converting font contour curves
US10930045B2 (en) 2017-03-22 2021-02-23 Microsoft Technology Licensing, Llc Digital ink based visual components
US10936792B2 (en) 2017-12-21 2021-03-02 Monotype Imaging Inc. Harmonizing font contours
US11537276B2 (en) * 2018-10-22 2022-12-27 Tableau Software, Inc. Generating data visualizations according to an object model of selected data sources
CN111061213B (zh) * 2019-12-04 2022-08-09 天津大学 一种基于Bezier曲线转角平滑过渡算法的加工方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1390164A (fr) * 1962-12-03 1965-02-26 Renault Procédé de génération d'une courbe et dispositif pour la mise en oeuvre de ce procédé
US3296428A (en) * 1963-02-13 1967-01-03 Nathan Amos Electronic function generator
US3659283A (en) * 1969-05-09 1972-04-25 Applied Digital Data Syst Variable size character raster display
US3828319A (en) * 1969-06-23 1974-08-06 Ipc Service Ltd Composition system
DE1936051C3 (de) * 1969-07-16 1974-04-18 Dr.-Ing. Rudolf Hell Gmbh, 2300 Kiel Verfahren zur Aufzeichnung von Strichzeichnungen auf dem Bildschirm eines Elektronenstrahlrohres und Schaltungsanordnung zur Durchführung des Verfahrens
US4195338A (en) * 1970-05-06 1980-03-25 Bell Telephone Laboratories, Incorporated Computer typesetting
US3809868A (en) * 1971-01-13 1974-05-07 Hughes Aircraft Co System for generating orthogonal control signals to produce curvilinear motion
US3789200A (en) * 1972-06-30 1974-01-29 Ibm Circle or arc generator for graphic display
GB1522375A (en) * 1975-08-07 1978-08-23 Texas Instruments Ltd Method and apparatus for displaying alphanumeric data
DE2601522C2 (de) * 1976-01-16 1978-05-03 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren und Anordnung zur Erfassung von Kurven auf einer Vorlage
US4070710A (en) * 1976-01-19 1978-01-24 Nugraphics, Inc. Raster scan display apparatus for dynamically viewing image elements stored in a random access memory array
US4197590A (en) * 1976-01-19 1980-04-08 Nugraphics, Inc. Method for dynamically viewing image elements stored in a random access memory array
JPS52152124A (en) * 1976-06-14 1977-12-17 Nippon Telegr & Teleph Corp <Ntt> Figure inputting
US4115863A (en) * 1976-12-07 1978-09-19 Sperry Rand Corporation Digital stroke display with vector, circle and character generation capability
GB1517870A (en) * 1976-12-20 1978-07-12 Ibm Apparatus for producing vectors from raster scanned data
US4212009A (en) * 1977-11-16 1980-07-08 Hewlett-Packard Company Smoothing a raster display
US4298945A (en) * 1978-05-12 1981-11-03 Eltra Corporation Character generating method and apparatus
US4208719A (en) * 1978-08-10 1980-06-17 The Singer Company Edge smoothing for real-time simulation of a polygon face object system as viewed by a moving observer
US4633433A (en) * 1979-04-23 1986-12-30 International Business Machines Corporation Display system for displaying maps having two-dimensional roads
GB2048624B (en) * 1979-05-02 1982-12-15 Ibm Graphics display apparatus
US4254468A (en) * 1979-05-03 1981-03-03 Eltra Corporation Typesetter character generating apparatus
US4390780A (en) * 1980-11-10 1983-06-28 Burroughs Corporation LSI Timing circuit for a digital display employing a modulo eight counter
US4373194A (en) * 1980-12-30 1983-02-08 International Business Machines Corporation Full page representation through dynamic mode switching

Also Published As

Publication number Publication date
ZA84444B (en) 1985-04-24
ES529001A0 (es) 1987-01-01
IL70735A0 (en) 1984-04-30
FI843697A0 (fi) 1984-09-20
DK443284D0 (da) 1984-09-18
ES8702680A1 (es) 1987-01-01
JPS60500385A (ja) 1985-03-22
EP0134809B1 (en) 1991-12-04
FI843697L (fi) 1984-09-20
WO1984002993A1 (en) 1984-08-02
US4620287A (en) 1986-10-28
CA1207913A (en) 1986-07-15
DK443284A (da) 1984-11-14
DE3485316D1 (de) 1992-01-16
JPS6367220B2 (no) 1988-12-23
EP0134809A4 (en) 1987-09-22
EP0134809A1 (en) 1985-03-27

Similar Documents

Publication Publication Date Title
NO843738L (no) Fremgangsmaate og innretning for presentering av en kurve med jevn bredde
US4674058A (en) Method and apparatus for flexigon representation of a two dimensional figure
KR100834596B1 (ko) 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체
US5611036A (en) Apparatus and method for defining the form and attributes of an object in an image
US5852448A (en) Stroke-based font generation independent of resolution
US5420970A (en) Method for determining computer image generation display pixels occupied by a circular feature
US7924278B2 (en) Real-time GPU rendering of piecewise algebraic surfaces
US20090153577A1 (en) Method and system for texturing of 3d model in 2d environment
US6124859A (en) Picture conversion method and medium used therefor
US20060071930A1 (en) Image processing apparatus, and computer program
US20090153555A1 (en) System and Computer-Implemented Method for Modeling the Three-Dimensional Shape of An Object by Shading of a Two-Dimensional Image of the Object
US6724383B1 (en) System and computer-implemented method for modeling the three-dimensional shape of an object by shading of a two-dimensional image of the object
JP2009301284A (ja) 描画装置および方法
US20040174361A1 (en) Geometric and brightness modeling of images
JP2009122998A (ja) ソリッド/サーフェースモデルから外形線を抽出する方法及びコンピュータソフトウエアプログラム
US5454070A (en) Pixel to spline based region conversion method
KR100318044B1 (ko) 화상합성시스템
AU2493384A (en) Method and apparatus for representation of a curve of uniformwidth
JP2005514675A (ja) N次元空間にm次の形状を生成するための方法および装置
JPH05298413A (ja) 図形処理装置
JP3132220B2 (ja) 3次元モデルの形状作成方法
JPH0350686A (ja) 図形処理方式
JP3312560B2 (ja) テクスチャマッピング装置
JPS6249477A (ja) 物体画像表示装置
JPH0772847A (ja) 文字フォント出力装置及び文字フォント生成装置