NO337287B1 - Fremgangsmåte og system for manipulering av en digital fremstilling av en tredimensjonal gjenstand - Google Patents

Fremgangsmåte og system for manipulering av en digital fremstilling av en tredimensjonal gjenstand Download PDF

Info

Publication number
NO337287B1
NO337287B1 NO20055872A NO20055872A NO337287B1 NO 337287 B1 NO337287 B1 NO 337287B1 NO 20055872 A NO20055872 A NO 20055872A NO 20055872 A NO20055872 A NO 20055872A NO 337287 B1 NO337287 B1 NO 337287B1
Authority
NO
Norway
Prior art keywords
building block
connection
candidate
dimensional
virtual
Prior art date
Application number
NO20055872A
Other languages
English (en)
Other versions
NO20055872L (no
Inventor
Olga Timcenko
Ronny Scherer
Naomi Clark
Peter Acker
Original Assignee
Lego As
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 Lego As filed Critical Lego As
Publication of NO20055872L publication Critical patent/NO20055872L/no
Publication of NO337287B1 publication Critical patent/NO337287B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H9/00Special methods or compositions for the manufacture of dolls, toy animals, toy figures, or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2008Assembling, disassembling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Generation (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)

Description

Oppfinnelsens område
Oppfinnelsen vedrører manipuleringen av en digital fremstilling av en tredimensjonal gjenstand. Mer spesielt vedrører oppfinnelsen den computerimplementerte manipuleringen av en tredimensjonal virtuell byggeklossmodell ved hjelp av todimensjonale markørbevegelser, idet den virtuelle byggeklossmodellen innbefatter flere virtuelle byggeklosser som hver innbefatter flere forbindelseselementer for kobling av den virtuelle byggeklossen med en annen virtuell byggekloss i samsvar med et sett av forbindelsesregler.
Oppfinnelsens bakgrunn
Computerbistått modellering av en virtuell virkelighet er oppgaven med opprettelse av en modell av en fysisk gjenstand, manipulering av modellen og på annen måte hånd-tering av en modell av en fysisk gjenstand i et computersystem.
Fra et første synspunkt er modellering av en virtuell virkelighet et interessant emne ved at det gjør det mulig å visualisere ideer før de faktisk er implementert i den virkelige verden. En enkel oppgave med maling av en gjenstand i den virkelige verden kan lett ta atskillige timer, mens computeren derimot kan påføre en ny farge på en modell i løpet av millisekunder eller sekunder.
Fra et annet synspunkt er modellering av en virtuell virkelighet interessant ved at den gjør det mulig å frembringe en modell av en gjenstand som eksisterer i den virkelige verden og via en computer å visualisere og manipulere modellen. Modellen av gjen-standen kan således lagres for ulike formål, f.eks. for avanserte dokumentasjonsformål.
Selv om det finnes en enorm mengde av mulige anvendelser for computerbistått virtuell virkelighetsmodellering er en spesiell anvendelse å bruke virtuell virkelighetsmodellering for underholdning eller utdanning.
Ulike typer av modellering av konsepter til fysiske konstruksjonslekesett er kjent som sådan. Spesielt er konsepter som bruker modulære eller halvmodulære konsepter svært populære. Disse konseptene tildanner typisk et sett av fortilvirkede elementer som kan sammenkobles med hverandre på noen forbestemt måte i samsvar med moduler av de fortilvirkede elementene. Et eksempel på en slik konstruksjon av lekesett er et sett av plastlekebyggeelementer tilgjengelig under navnet LEGO.
Når manipulering av fremstillinger av tredimensjonale (3D) gjenstander eller bilder på en computer er det et generelt problem at en posisjonering, en utvelgelse eller en bevegelse av en gjenstand i 3D gjennomføres ved hjelp av en innmatingsinnretning som virker i to dimensjoner, f.eks. den todimensjonale (2D) bevegelsen av en computermus på en musematte. Enn videre er visningsområdet på en computer likeledes todimensjonal. I særdeleshet tilsvarer hver valgt posisjon på 2D-visningsområdet av computerskjermen flere posisjoner i 3D-rommet som har en projeksjon på 2D-visningsområdet tilsvarende den valgte 2D-posisjonen. Det er et problem å bestemme en av posisjonene som sannsynligvis tilsvarer brukerens intensjon.
Selv om betydelige anstrengelser er blitt gjort for å utvikle computergrensesnittinn-retninger som er mer egnet for manipulering av gjenstander i en 3D-computergrafikk brukes slikt verktøy ennå ikke i stor grad, i særdeleshet ikke i forbindelse med com-putersystemer brukt for hjemmeunderholdning, utdanning etc.
Kjente konstruksjonsspill der virtuelle byggeklosser er posisjonert begrenses typisk med hensyn til frihetsgradene av bevegelsene og rotasjonene av gjenstandene, eller av måtene for kobling av disse med andre gjenstander.
US patent nr. 6.426.745 omtaler en fremgangsmåte for manipulering av en 3D-grafikk-gjenstand med en mus, der en bevegelse i 3D gjennomføres ved begrensning av bevegelsen til et plan eller en retning ved et tidspunkt, for derved å gjennomføre 3D-bevegelsen som en sekvens av begrensede bevegelser, f. eks. som en sekvens av bevegelser i x-retningen, deretter y-retningen og til slutt i z-retningen av et 3D-koordinatsystem.
WO 00/43959 viser en kompakt representasjon av en modell av et geometrisk objekt.
Det er et problem med de tidligere kjente systemene over at plasseringen av byggeklosser i et 3D-bilde og deres kobling til en 3D-struktur med tradisjonelle brukergrensesnitt er en brysom prosess som krever et høyt nivå av dyktighet og øvelse. I særdeleshet i sammenhengen med underholdning og utdanning av barn og tenåringer er dette et problem, ettersom barn ofte ennå ikke har utviklet tilstrekkelige motoriske evner eller den påkrevde tålmodigheten for å gjennomføre en langvarig manipuleringsprosess. Følgelig kan de svært raskt miste interessen for et virtuelt konstruksjonsspill.
Sammenfatning av oppfinnelsen
Problemene nevnt over og andre løses med en computerimplementert fremgangsmåte for manipulering av en tredimensjonal virtuell byggeklossmodell ved hjelp av todimensjonale markørbevegelser, idet den virtuelle byggeklossmodellen innbefatter flere virtuelle byggeklosser som hver innbefatter flere forbindelseselementer for kobling av den virtuelle byggeklossen med en annen virtuell byggekloss i samsvar med et sett av forbindelsesregler, idet fremgangsmåten omfatter
- tildannelse av en digital fremstilling av en struktur som omfatter flere av de virtuelle byggeklossene i et tredimensjonalt koordinatsystem; - ved hjelp av markørbevegelser i en todimensjonal fremstilling av et computer-visningsområdes posisjonering av en projeksjon av strukturen, en todimensjonal projeksjon av en første virtuell byggekloss som skal kobles til strukturen, noe som resulterer i todimensjonale posisjonskoordinater; fra de todimensjonale posisjonskoordinatenes bestemmelse av flere tre dimensjonale kandidatposisjoner av den første virtuelle byggeklossen i det tredimensjonale koordinatsystemet; og - utvelgelse av en av kandidatposisj onene basert på forbindelsesreglene og et forbestemt sett av posisjonsrangeringsregler; og - kobling av den første byggeklossen til strukturen ved den valgte kandidatposisj onen.
Følgelig er det fremskaffet en effektiv fremgangsmåte for manipulering av en digital fremstilling av en tredimensjonal gjenstand, hvilken fremstilling omgjør en posisjon i et 2D-virkningsområde til en tilsvarende 3D-posisjon på en måte som er intuitiv for brukeren, for derved å gjøre det betydelig enklere for en bruker å manipulere en virtuell 3D-struktur. Brukeren kan simpelthen posisjonere en ny byggekloss innenfor 2D-skj erm området, for derved kun å feste koordinatene til den nye byggeklossen langs to retninger. En passende av flere mulige 3D-posisjoner forenlig med 2D-plasseringen bestemmes da automatisk i samsvar med flere forbindelsesregler og et sett av posisjonsrangeringsregler.
Ved utvelgelse av en av flere kandidatposisjoner i samsvar med et forbestemt sett av posisjonsrangeringsregler resulterer i særdeleshet prosessen i posisjonering av byggeklossen ved en posisjon i 3D-bildet som sannsynligvis tilsvarer brukerens intensjon. Det er en ytterligere fordel at posisjoner som ikke er forenlige med forbindelsesreglene for forbindelseselementene avvises. For eksempel kan det være et betydelig mangfold av ulike forbindelseselementer i et konstruksjonssystem, f. eks. fremspring med ulike former og/eller størrelser og forskjellige typer av hulrom for kobling med tilsvarende av fremspringene.
Ved utvelgelse av et kandidatforbindelseselement nært et forbindelseselement på den nye byggeklossen med antagelsen at den nye byggeklossen er plassert i en 3D-kandidatposisjon forenlig med 2D-plasseringen, og ved testing av hvorvidt en gyldig forbindelse er mulig med dette kandidatforbindelseselementet, omgjøres korrekt 2D-plasseringen av den nye byggeklossen på computerskjermen til en 3D-posisjon innenfor 3D-modellen. Enn videre unngås 2D- til 3D-omgjøringer som ville forårsake ugyldige forbindelser i samsvar med et sett av forbindelsesregler, f. eks. forbindelser er et fremspring med et hulrom av en avvikende type.
Det er følgelig en fordel at de virtuelle byggeklossene er forenlige med de fysiske be-grensningene til et tilsvarende virkelig konstruksjonssett, for derved å forbedre utdan-ningsverdien til et virtuelt konstruksjonsspill. I særdeleshet kan en virtuell konstruksjon hovedsakelig overføres til en fysisk modell ved konstruksjon av en fysisk modell fra de samme typer av byggeklosser.
Det er en ytterligere fordel at fremgangsmåten gir en stor frihetsgrad for bevegelser og forbindelser. En byggekloss kan for eksempel posisjoneres og kobles i hvilken som helst retning. I særdeleshet er forbindelse med andre byggeklosser både i horisontale og vertikale plan mulig. Enn videre er byggeklossene korrekt posisjonert, selv om de roteres, f. eks. rundt en vertikal eller en horisontal akse.
Fortrinnsvis styres posisjoneringen av den grafiske fremstillingen av styrekommandoer mottatt fra en bruker via en passende innmatingsinnretning, så som en pekeinnretning. Posisjoneringen kan for eksempel gjennomføres som en vanlig markørmanipulerings-teknikk, så som en "dra-og-slipp" prosedyre, en "klikk-dra-frigjør" prosedyre eller liknende.
I en foretrukket utførelse omfatter trinnet med bestemmelse av flere tredimensjonale kandidatposisjoner videre bestemmelse av flere kandidatorienteringer av den første virtuelle byggeklossen i det tredimensjonale koordinatsystemet. Ved rotering av den første byggeklossen for å få kandidatposisjoner av en rotert byggekloss omgjøres den brukerstyrte 2D-posisjonen til en 3D-plassering og en orientering i tre dimensjoner, for derved å bestemme seks frihetsgrader av plassering i et 3D-bilde kun på grunnlaget av en enkelt markørkontroll i 2D-skjermområdet. Når rotasjonen av den første byggeklossen begrenses til en forbestemt romvinkel rundt en brukervalgt orientering unngås for-virrende rotasjoner, så som en fullstendig rundvipping av byggeklossen, for derved å unngå desorientering av brukeren. I denne utførelsen kan ytterligere orienteringer oppnås ved å tillate at en bruker velger en orientering av den virtuelle byggeklossen.
I en foretrukket utførelse omfatter fremgangsmåten videre
bestemmelse av flere kandidatforbindelseselementer til strukturen, idet hvert av kandidatforbindelseselementene har en projeksjon i det todimensjonale visningsområdet innenfor et forbestemt nabolag rundt en projeksjon av et forbindelseselement til den første virtuelle byggeklossen;
utvelgelse av ett av kandidatforbindelseselementene basert på forbindelsesreglene og det forbestemte settet av posisjoneringsrangeringsregler; og
dersom en forbindelse mellom den første virtuelle byggeklossen og strukturen er gyldig i samsvar med settet av forbindelsesregler, forbinding av den første virtuelle byggeklossen med strukturen via minst det valgte kandidatforbindelsesele-mentet.
En computereffektiv fremgangsmåte for oppsporing av kandidatposisjoner fremskaffes følgelig, ettersom oppsporingen kun er avhengig av posisjoner og egenskaper til indi-viduelle forbindelseselementer. Enn videre fremskaffes en effektiv utvelgelsesmeka-nisme for utvelgelse av en 3D-posisjon som mest sannsynlig tilsvarer brukerens intensjon.
En spesielt fordelaktig rangering av forbindelseselementer besørges, når rangeringen omfatter en eller flere av de følgende rangeringsregler: - rangering av kandidatforbindelseselementene med hensyn til deres avstand fra en virtuell kameraposisjon; - vraking av kandidatforbindelseselementer som ikke er synlig fra den aktuelle virtuelle kameraposisjon; og rangering av kandidatforbindelseselementene med hensyn til avstanden fra deres todimensjonale projeksjoner til den todimensjonale projeksjonen av et tilsvarende forbindelseselement og den første virtuelle byggeklossen.
I særdeleshet fås en pålitelig 3D-posisjonering når graderingsregelen baseres på en kombinasjon av avstanden fra en virtuell kameraposisjon og på de respektive avstander til deres todimensjonale projeksjoner til den todimensjonale projeksjonen av det tilsvarende forbindelseselementet på den første virtuelle byggeklossen.
I en foretrukket utførelse omfatter den digitale fremstillingen av strukturen for hver virtuelle byggekloss flere regelmessige gitre tilsvarende minst en av overflatene på den virtuelle byggeklossen, idet hvert regelmessige gitter omfatter flere gitterpunkter, idet hvert gitterpunkt utgjør et forbindelseselement. Følgelig tildannes et systematisk rammeverk som tillater en korrekt omgjøring av 3D-posisjoner og korrekt sammen-kobling av et stort antall av ulike byggeklosser, selv om byggeklossene har et stort antall forbindelseselementer og endog avvikende typer av forbindelseselementer.
Det forbestemte nabolaget rundt en projeksjon av et forbindelseselement på den første virtuelle byggeklossen har fortrinnsvis en lineær dimensjon, så som en diameter, tilsvarende avstanden mellom tilgrensende punkter på det tilsvarende regelmessige gitteret. Følgelig besørges det en nøyaktig og finkornet brukerstyrt plassering som gir 3D-oppløsninger og byggeklossforbindelser som er forutsigbare og transparente for brukeren.
Ytterligere foretrukne utførelser avdekkes i de uselvstendige patentkravene.
Den foreliggende oppfinnelse kan implementeres på ulike måter som innbefatter fremgangsmåten omtalt over og i det etterfølgende et dataprosesseringssystem og ytterligere produktinnretninger som hvert gir en eller flere av gevinstene og fordelene omtalt i forbindelse med fremgangsmåten nevnt først, og som hver har en eller flere foretrukne utførelser som tilsvarer de foretrukne utførelser omtalt i forbindelse med fremgangsmåten nevnt først.
Det påpekes at innslagene ved fremgangsmåten omtalt over og i det etterfølgende kan implementeres i programvare og gjennomføres i et dataprosesseringssystem eller andre prosesseringsinnretninger bevirket med utførelsen av computerutførbare instruksjoner. Instruksjonene kan være programkodeinnretninger lastet i et minne, så som et RAM, fra et lagringsmedium eller fra en annen computer via et computernettverk. Alternativt kan de omtalte innslagene implementeres med et fastkoblet kretssystem i stedet for programvare, eller i kombinasjon med programvare.
Oppfinnelsen vedrører videre et computerprogram omfattende programkodeinnretninger for gjennomføring av alle trinnene til fremgangsmåten omtalt over og i det etterfølg-ende, når programmet kjøres på en computer. Computerprogrammet kan innlemmes som et computerlesbart lagringsmedium, som et datasignal innlemmet som en bære-bølge eller liknende.
Oppfinnelsen vedrører videre et computerprogramprodukt omfattende programkodeinnretninger lagret på et computerlesbart medium for gjennomføring av fremgangsmåten omtalt over og i det etterfølgende, når computerprogrammet kjøres på en computer.
Kort omtale av tegningene:
Oppfinnelsen vil forklares mer fullstendig under i forbindelse med en foretrukket utfør-else, og med henvisning til tegningene, i hvilke: Fig. la-b viser et dataprosesseringssystem for generering og manipulering av computerlesbare modeller av geometriske gjenstander; Fig. 2 viser et grafisk brukergrensesnitt av et virtuelt byggeklossystem; Fig. 3 a-d illustrerer eksempler av byggeklosser og deres forbindelseselementer; Fig. 4a-b illustrerer en utførelse av en digital fremstilling av en fysisk byggekloss; Fig. 4c illustrerer eksempler av volumelementer rundt forbindelsespunkter; Fig. 5 viser et flytdiagram for en prosess med posisjonering av en byggekloss i et 3D-bilde og kobling av den til en struktur av byggeklosser som allerede er tilstede i det bildet;
rangering av kandidatforbindelseselementene med hensyn til avstanden fra deres todimensjonale projeksjoner til den todimensjonale projeksjonen av et tilsvarende forbindelseselement og den første virtuelle byggeklossen.
I særdeleshet fås en pålitelig 3D-posisjonering når graderingsregelen baseres på en kombinasjon av avstanden fra en virtuell kameraposisjon og på de respektive avstander til deres todimensjonale projeksjoner til den todimensjonale projeksjonen av det tilsvarende forbindelseselementet på den første virtuelle byggeklossen.
I en foretrukket utførelse omfatter den digitale fremstillingen av strukturen for hver virtuelle byggekloss flere regelmessige gitre tilsvarende minst en av overflatene på den virtuelle byggeklossen, idet hvert regelmessige gitter omfatter flere gitterpunkter, idet hvert gitterpunkt utgjør et forbindelseselement. Følgelig tildannes et systematisk rammeverk som tillater en korrekt omgjøring av 3D-posisjoner og korrekt sammen-kobling av et stort antall av ulike byggeklosser, selv om byggeklossene har et stort antall forbindelseselementer og endog avvikende typer av forbindelseselementer.
Det forbestemte nabolaget rundt en projeksjon av et forbindelseselement på den første virtuelle byggeklossen har fortrinnsvis en lineær dimensjon, så som en diameter, tilsvarende avstanden mellom tilgrensende punkter på det tilsvarende regelmessige gitteret. Følgelig besørges det en nøyaktig og finkornet brukerstyrt plassering som gir 3D-oppløsninger og byggeklossforbindelser som er forutsigbare og transparente for brukeren.
Ytterligere foretrukne utførelser avdekkes i de uselvstendige patentkravene.
Den foreliggende oppfinnelse kan implementeres på ulike måter som innbefatter fremgangsmåten omtalt over og i det etterfølgende et dataprosesseringssystem og ytterligere produktinnretninger som hvert gir en eller flere av gevinstene og fordelene omtalt i forbindelse med fremgangsmåten nevnt først, og som hver har en eller flere foretrukne utførelser som tilsvarer de foretrukne utførelser omtalt i forbindelse med fremgangsmåten nevnt først.
Det påpekes at innslagene ved fremgangsmåten omtalt over og i det etterfølgende kan implementeres i programvare og gjennomføres i et dataprosesseringssystem eller andre prosesseringsinnretninger bevirket med utførelsen av computerutførbare instruksjoner. Instruksjonene kan være programkodeinnretninger lastet i et minne, så som et RAM, fra et lagringsmedium eller fra en annen computer via et computernettverk. Alternativt kan de omtalte innslagene implementeres med et fastkoblet kretssystem i stedet for programvare, eller i kombinasjon med programvare.
Oppfinnelsen vedrører videre et computerprogram omfattende programkodeinnretninger for gjennomføring av alle trinnene til fremgangsmåten omtalt over og i det etterfølg-ende, når programmet kjøres på en computer. Computerprogrammet kan innlemmes som et computerlesbart lagringsmedium, som et datasignal innlemmet som en bære-bølge eller liknende.
Oppfinnelsen vedrører videre et computerprogramprodukt omfattende programkodeinnretninger lagret på et computerlesbart medium for gjennomføring av fremgangsmåten omtalt over og i det etterfølgende, når computerprogrammet kjøres på en computer.
Kort omtale av tegningene:
Oppfinnelsen vil forklares mer fullstendig under i forbindelse med en foretrukket utfør-else, og med henvisning til tegningene, i hvilke: Fig. la-b viser et dataprosesseringssystem for generering og manipulering av computerlesbare modeller av geometriske gjenstander; Fig. 2 viser et grafisk brukergrensesnitt av et virtuelt byggeklossystem; Fig. 3a-d illustrerer eksempler av byggeklosser og deres forbindelseselementer; Fig. 4a-b illustrerer en utførelse av en digital fremstilling av en fysisk byggekloss; Fig. 4c illustrerer eksempler av volumelementer rundt forbindelsespunkter; Fig. 5 viser et flytdiagram for en prosess med posisjonering av en byggekloss i et 3D-bilde og kobling av den til en struktur av byggeklosser som allerede er tilstede i det bildet; Fig. 6a-b illustrerer et eksempel av posisjoneringen til en ny byggekloss på toppen av en tidligere plassert byggekloss; Fig. 7a-b illustrerer to posisjoner til en byggekloss, hvilke posisjoner resulterer fra svakt avvikende 2D-plasseringer av den grafiske fremstillingen på skjermen; Fig. 8 viser et flytdiagram for en utførelse av underprosessen med konnektivitetsverifikasjon av en ny byggekloss i en tentativ 3D-plassering; og
Fig. 9a-b illustrerer forbindelsen av en byggekloss innbefattende en rotasjon.
Detaljert omtale av foretrukne utførelser
Fig. la-b viser et dataprosesseringssystem for generering og manipulering av computerlesbare modeller av geometriske gjenstander. Fig. la viser et skjematisk riss av et eksempel av et computersystem. Computersystemet omfatter en passende programmert computer 101, f.eks. en personlig computer som omfatter et display 120, et tastatur 121 og en computermus 122 og/eller en annen pekeinnretning, så som en berøringspute, en styreball, en lyspenn, en berøringsskjerm eller liknende.
Computersystemet betegnet 101 er tilpasset for å underlette formgivning, lagring, manipulering og deling av virtuelle byggeklossmodeller. Computersystemet 101 kan brukes som et selvstendig system eller som en klient i et klient/serversystem.
Fig. lb viser et blokkdiagram av et dataprosesseringssystem for generering og manipulering av computerlesbare virtuelle byggeklossmodeller. Computeren 101 omfatter et minne 102 som kan delvis implementeres som en flyktig og delvis som en ikke-flyktig minneinnretning, f.eks. et direkteminne (RAM) og en harddisk. Minnet har lagret på dette en modellkodefortolker 107, en modellkodegenerator 108, en UI-hendelsesbehandler 109 og en modelleringsapplikasjon 110, hver utførbar av sentralenheten 103. Videre har minnet lagret på dette modelldata 111, dvs. et sett av datastrukturer som utgjør digital fremstilling av en fysisk gjenstand, f.eks. en virtuell byggeklossmodell. Et eksempel av et dataformat for lagring av virtuelle byggemodeller er omtalt i US patent nr. 6.389.375.
Kodefortolkeren 107 er avpasset for å lese og fortolke koder som definerer en modell, dvs. kode som utgjør datastrukturen av byggeklossene til en modell. I en foretrukket utførelse er kodefortolkeren avpasset for å lese en modell og for å omdanne en slik modell til et kjent grafisk format for presentasjon på et computerdisplay.
UI-hendelsesbehandleren 109 er avpasset for å omdanne en brukers samvirkning med
en brukergrenseflate til korrekte brukerkommandoer gjenkjennbare av kodegeneratoren 108. Et sett av mulige og gjenkjennbare kommandoer kan omfatte: henting av en byggekloss fra et bibliotek av elementer, plassering av en byggekloss som skal kobles med en annen byggekloss, løsning av en byggekloss, kassering av en byggekloss, manipulering av en byggekloss, en gruppe av byggeklosser etc, f.eks. ved innledning av en rotasjon etc. Sammen med hver kommando kan det tilknyttes et sett av respektive parametere, f.eks. markørkoordinater med hensyn til displaykoordinatsystemet, typer av byggeklosser etc.
Kodegeneratoren 108 er avpasset for å modifisere datastrukturene ti81 en modell i reaksjon på en brukers kommandoer. Som en konkurrerende eller senere oppgave kan kodefortolkeren utføres for presentering av resultatet fra kodegeneratoren.
Modelleringsapplikasjonen 110 er avpasset for å styre minnet, filer, brukergrensesnittet etc.
En bruker 105 er i stand til samhandling med computersystemet 101 ved hjelp av brukergrensesnittet 106 som fortrinnsvis omfatter et grafisk brukergrensesnitt vist på en computerskjerm og en eller flere innmatingsinnretninger, så som et tastatur og/eller en pekeinnretning.
For å laste, spare eller formidle modeller, geometriske beskrivelser eller andre data omfatter computersystemet en innmatings/utmatingsenhet (I/O) 104. Innmatings/- utmatingsenheten kan brukes som et grensesnitt mot forskjellige typer av lagring, medier og forskjellige typer av computernettverk, f.eks. internett. Videre kan innmatings/utmatingsenheten (I/O) 104 brukes for utveksling av modeller med andre brukere, f.eks. interaktivt.
Datautveksling mellom minnet 102, sentralenheten (CPU) 103, brukergrensesnittet (Ul) 106 og innmatings/utmatingsenheten 104 gjennomføres ved hjelp av databussen 112.
Fig. 2 viser et grafisk brukergrensesnitt til et virtuelt byggeklossystem.
Brukergrensesnittet omfatter et displayområde 201 som viser et riss av et 3D-bilde med en bunnplate 201 og en 3D-struktur 203 omfattende flere sammenkoblede virtuelle byggeklosser 204. Bildet vises fra et forbestemt synssted. I det etterfølgende vil synsstedet også betegnes som en (virtuell) kameraposisjon, ettersom det tilsvarer en posisjon fra hvilken et kamera ville registrere et bilde av en virkelig struktur som tilsvarer det grafiske bildet vist på displayområdet.
Hver av byggeklossene 204 tilsvarer et aktivt element av det grafiske brukergrensesnittet som kan aktiveres, f.eks. ved klikking på det med en computermus for å velge den byggeklossen. I en utførelse endrer en valgt virtuell byggekloss utseende. For eksempel kan den valgte byggeklossen skifte farge, tekstur etc; den kan utheves ved visning av en grensekasse rundt den valgte byggeklossen eller liknende. En bruker kan manipulere en valgt byggekloss, f.eks. endring av dens egenskaper, f.eks. dens farger, sletting av den, gjennomføring av en kopi- og limeprosedyre, trekking av den til en avvikende posisjon eller liknende.
Brukergrensesnittet omfatter videre et palettfelt 205 omfattende flere forskjellige byggeklosser 206 som kan velges av brukeren. For eksempel kan en bruker klikke på en av byggeklossene 206 med musen, for derved å velge den byggeklossen og trekke den valgte byggeklossen til displayområdet 201 for å koble den til strukturen 203 eller til bunnplaten 202.
Brukergrensesnittet omfatter videre en menylinje 207, omfattende flere menyknapper 108 for aktivering av forskjellige funksjoner eller verktøy. For eksempel kan verktøy-linjen omfatte et rotasjonsverktøy for endring av den virtuelle kameraposisjonen, for derved å tillate at brukeren betrakter byggeområder fra forskjellige retninger. Menylinjen kan videre omfatte et zoomeverktøy for zooming inn og ut til/fira 3D-bildet. Andre eksempler av verktøy innbefatter et palettverktøy for utvelgelse av forskjellige paletter 205 som hver omfatter et sett av byggeklosser, et fargeverktøy for farging av deler av strukturen, et raderverktøy for radering av byggeklosser etc
Menylinjen 207 kan videre gi standardfunksjoner, så som funksjoner for sparing av en modell, åpning av en tidligere spart modell, trykking av et bilde av en modell, en hjelpe-funksjon etc.
Fig. 3a-d illustrerer eksempler av byggeklosser og deres forbindelseselementer.
Fig. 3a viser et perspektivriss av en byggekloss 301. Byggeklossen 301 har en øvre overflate 302 med åtte knaster 3 03a-h som kan kobles med tilsvarende hull i en annen byggekloss, f.eks. hull på den nedre overflaten av en annen byggekloss. Tilsvarende omfatter byggeklossen 301 en nedre overflate (ikke vist) med tilsvarende hull. Byggeklossen 301 omfatter videre sideytterflater 304 som ikke omfatter noen forbindelseselementer.
Generelt kan forbindelseselementene grupperes i forskjellige klasser av forbindelseselementet, f.eks. konnektorer, mottakere og blandede elementer. Konnektorer er forbindelseselementer som kan opptas av en mottaker på en annen byggekloss, for derved å tildanne en forbindelse mellom byggeklossene. En konnektor kan for eksempel passe mellom deler av et annet element, i et hull eller liknende. Mottakere er forbindelseselementer som kan oppta en konnektor på en annen byggekloss. Blandede elementer er deler som kan virke både som en mottaker og en konnektor, typisk avhengig av typen av samvirkende forbindelseselement på den andre byggeklossen. Fig. 3b viser et perspektivriss av en byggekloss 310 sett fra undersiden. Byggeklossen 310 har en ikke-rektangulær øvre og nedre ytterflate. Den nedre ytterflaten omfatter hull 311, 312 og 313 for mottak av tilsvarende knaster på en eller flere andre byggeklosser, f.eks. byggeklossen 301 fra fig. 3a. Disse hullene er avgrenset av kanter 314, av sekun-dære tapper 315, likeledes hjørner 316 og 317. Egenskapen til alle av elementene over bestemmer følgelig konvektivitetsegenskapene til den nedre ytterflaten av byggeklossen 310. Fig. 3c illustrerer en byggekloss 320 som er koblet til en byggekloss 321, for derved å tilforme en kombinert byggekloss. Byggeklossen 320 omfatter knaster 322 på dens øvre ytterflate, hvilke knaster passer i tilsvarende hull på en annen byggekloss. Slik som er illustrert av fig. 3c kan imidlertid andre typer av forbindelser likeledes oppnås: spaltene 323 mellom knastene virker som mottakere for andre konnektorer, så som sideytter-flaten 324 av klossen 321. For fysiske byggeklosser bestemmes denne egenskapen av dimensjonene til spaltene og dimensjonene til byggeklossen 321, dvs. bredden 325 av dens sider. I en digital fremstilling utgjøres imidlertid disse egenskapene av tilsvarende attributter av forbindelsespunkter på et regelmessig gitter, slik som vil illustreres i større detalj under.
Fig. 3d viser to byggeklosser 331 og 332. Byggeklossen 331 er en blokk som har fire knaster 333 på dens øvre ytterflate og fire tilsvarende hull på den nedre ytterflaten (ikke vist). Blokken 132 er et eksempel på en byggekloss med en overflate som omfatter plan som ikke er innbyrdes ortogonale. Byggeklossen 332 har spesielt en skrånet ytterflate 334. Slik som er illustrert på fig. 3d i deres aktuelle posisjoner er byggeklossene 331 og 332 ikke koblet ettersom det ikke er noen forbindelseselementer som i den viste posisjonen griper med hverandre.
Det forstås at byggeklossene over kun tjener som eksempler av mulige byggeklosser.
Fig. 4a-c illustrerer en utførelse av en digital fremstilling av en fysisk byggekloss. En digital fremstilling av en fysisk byggekloss omfatter en datastruktur lagret i minnet på en computer, der den digitale fremstillingen utgjør egenskapene til den byggeklossen. I henhold til denne utførelsen kan forbindelseselementene på en byggekloss skille seg i beskaffenhet, form, forbindelsesegenskaper etc. Deres lokalisering på byggeklossen følger imidlertid et sett av regler: En byggekloss har flere plan knyttet til den, f.eks. planene definert med overflaten av en avgrensningskasse til en byggekloss. Forbindelseselementene på byggeklossen er lokalisert i disse planene, slik at hvert forbindelseselement har en akse tilknyttet det. Aksen til alle forbindelseselementene i det samme planet tilsvarer respektive gitterpunkter,
såkalte knuter på et regelmessig gitter, f.eks. et ortogonalt gitter, med faste avstander mellom tilgrensende gitterpunkter. Fortrinnsvis er planene knyttet til en byggekloss
parvis parallelle med hverandre, f.eks. ved definering av et sett av horisontale plan som tilsvarer den øvre og den nedre ytterflaten av en byggekloss, og flere vertikale plan som tilsvarer sideytterflatene av byggeklossen. Avstanden mellom tilgrensende gitterpunkter er fortrinnsvis den samme i alle horisontale plan. I en utførelse er avstanden mellom tilgrensende gitterpunkt i vertikale plan avvikende fra avstanden mellom tilgrensende gitterpunkter i horisontale plan.
Fig. 4a-b illustrerer skjematisk hvorledes en utførelse av en datastruktur beskriver egenskapene til byggeklossen 301 fra fig. 3a. På fig. 4a-b er byggeklossen 301 vist med dens tilsvarende ortogonale gitre 405 og 406 på henholdsvis den øvre overflaten og den nedre overflaten. Fig. 4a viser et perspektivriss av byggeklossen, mens fig. 4b viser et toppriss av byggeklossen. På fig. 4a-b er gitteret på sideytterflatene av byggeklossen 301 ikke
vist. Noen eksempler av byggeklosser, f.eks. byggeklossen 301, har ikke noen forbindelseselementer på noen av ytterflatene, f.eks. på sideytterflatene. Andre eksempler av byggeklosser kan ha forbindelseselementer på alle sider.
De ortogonale gitrene vil også betegnes som konnektivitetsgitre, og gitterpunktene vil også betegnes som forbindelsespunkter. Forbindelsespunktene er illustrert med sirkler, slik som eksemplifisert med sirklene 407a-k. Forbindelsespunktene 407a-h tilsvarer følgelig respektive knast 3 03a-h. Ettersom sideoverflatene 304 ikke har noen forbindelseselementer behøver ingen forbindelsesgitre defineres for disse. I en alternativ utfør-else kan forbindelsesgitre som omfatter kun hulromsmottakere defineres av sideoverflatene, dvs. mottakere som verken kobler eller avviser andre forbindelseselementer.
Den digitale fremstillingen av byggeklossen er omtalt med hensyn til et indre høyre-hendt koordinatsystem 408. Det forstås at valget av koordinatsystem, i særdeleshet lokaliseringen av dets opprinnelse og retningene til aksene kan velges i samsvar med hvilken som helst egnet konvensjon. I en tilsvarende datastruktur kan følgelig posisjonen og orienteringen til byggeklossen i et 3D-bilde utgjøres av koordinatene med opprinnelsen og retningen til aksene i koordinatsystemet 408 med hensyn til et ytre koordinatsystem, f.eks. koordinatsystemet til en annen byggekloss eller et globalt "verdens"-koordinatsystem.
Slik som kan sees av fig. 4a påtvinges en fremstilling av forbindelseselementene på byggeklossen av forbindelsespunktene plassert i et regelmessig gitter visse begrens-ninger på den fysiske plasseringen av forbindelseselementene på de fysiske byggeklossene. Gitteret 405 er lokalisert i planet til den øvre overflaten av byggeklossen, fra hvilken knastene 303 strekker seg.
I eksemplet på fig. 4a-b er gitterpunktene plassert i et firkantet gitter, der hver firkant har en dimensjon på 5x5 enheter av en vilkårlig lengdeenhet (LU). I denne geometrien er følgelig forbindelseselementene også plassert på et tilsvarende firkantgitter, og avstanden mellom forbindelseselementene i planet til byggeklossen er en multippel av 10 LU. I eksemplet på fig. 4 er den øvre og den nedre overflaten av byggeklossen rektangulær og har en dimensjon på 20 LU x 40 LU, og tilgrensende forbindelseselementer er anbrakt i avstand fra hverandre med 10 LU. I den vertikale retningen er på den annen side forbindelseselementene anbrakt i avstand fra hverandre med 12 LU.
Lokaliseringen til forbindelsespunktene er definert med hensyn til det indre koordinatsystemet 408 til byggeklossen. Hvert gitterpunkt har videre en retning knyttet til det, hvilket punkt angir i hvilken retning forbindelseselementet kan gripe med et tilsvarende forbindelseselement. Retningen til gitterpunktene er ortogonal med planene og peker ut av begrensningskassen, dvs. på fig. 4b peker ut av planet til tegningen.
I en utførelse omfatter en datastruktur som utgjør gitteret av forbindelsespunkter, for hvert forbindelsespunkt: koordinatene til forbindelsespunktet med hensyn til koordinatsystemet 408, retningen til forbindelseselementet og en konnektivitetstype.
I en utførelse omfatter en datastruktur som utgjør en byggekloss, en byggekloss-ID, en datastruktur som beskriver posisjonen, orienteringen og dimensjonen til en begrens-ningskasse av byggeklossen, og flere datastrukturer som beskriver de respektive gitrene og deres tilsvarende forbindelsespunkter. En datastruktur som utgjør et gitter av forbindelsespunkter omfatter: Koordinatene med hensyn til koordinatsystemet 408 til et gitterpunkt brukt som en opprinnelse av et lokalt gitterkoordinatsystem. I eksemplet av gitteret 405 er gitterpunktet 307i brukt som opprinnelse med koordinater P0= (-5, 12, -15) i LU-er.
Retningen til forbindelseselementene. I eksemplet av gitteret 405 er dette (0, 1,
0), dvs. retningen til y-aksen i koordinatsystemet 408.
Antallet av gitterpunkter i x- og z-retning. I dette eksemplet av gitteret 405,
henholdsvis nx= 9 og nz = 5.
En gruppering av nxx nz datastrukturer, idet hver omfatter forbindelsesegen-skapene til et tilsvarende forbindelsespunkt. Datastrukturen til hvert gitterpunkt omfatter en forbindelsestype av forbindelsespunktet, f.eks. "hull", "kant", "knast" etc.
I en utførelse har hvert forbindelsespunkt videre et volumelement knyttet til det, hvilket element definerer et nabolag rundt det forbindelsespunktet.
Fig. 4c illustrerer eksempler av volumelementer rundt forbindelsespunkter. I en utfør-else har hvert forbindelsespunkt knyttet til det en kule med dens senter i forbindelsespunktet. På fig. 4c er dette eksemplifisert av forbindelsespunkter 407g og 407j på forbindelsesgitter 405 til byggeklossen 301 over. For forbindelsespunktene 407g og 407j er det angitt respektive tilsvarende kuler 41 Og og 410j. Kulene har en radius lik halve avstanden mellom tilstøtende forbindelsespunkt, f.eks. 2,5 LU i eksemplet på fig. 4a-b. Det er forstått at i alternative utførelser kan kulene være mindre eller større, dvs. de kan krysse hverandre eller det kan være en spalte mellom kuler av tilstøtende kuler, for derved å tillate en styring av følsomheten til posisjoneringsmetoden med hensyn til mindre feilplasseringer.
Det forstås videre at avvikende typer av volumelementer likeledes kan brukes. For eksempel kan volumelementene være sylindere rundt forbindelseselementene, slik som eksemplifisert av sylinderen 410c rundt forbindelsespunktet 407c. I dette eksemplet har sylinderen en radius på 2,5 LU og en høyde på 5 LU. Ytterligere eksempler av volumelementer innbefatter kuber, ellipsoider etc.
Det forstås videre at i noen utførelser kan forskjellige typer av forbindelseselementer knyttes til avvikende volumelementer, f.eks. volumelementer med ulike størrelser, f.eks. ulik radius og/eller avvikende høyder, eller endog forskjellige geometriske former. I en slik utførelse kan datastrukturene som utgjør forbindelsespunktene videre omfatte en eller flere parametere som identifiserer typen og/eller dimensjonen(e) til det tilknyttede volumelement.
Det forstås at når grafisk fremstilling av byggeklossen på et display, f.eks. en computerskjerm, trenger ikke begrensningsvolumene, koordinatsystemene, volumelementene og gitrene ikke vises. En grafisk representasjon innbefatter fortrinnsvis kun en grafisk gjen-givelse av selve byggeklossen.
I det etterfølgende vil en prosess for plassering av en ny virtuell bygningskloss i et bilde som innbefatter en 3D-struktur omtales i større detalj. Henvisning vil gjøres til figur 5 og 6a-b.
Fig. 5 viser et flytdiagram for en prosess med posisjonering av en byggekloss i et 3D-bilde og kobling av den til en struktur av byggeklosser som allerede er tilstede i det bildet.
I trinn 501 plasseres en ny byggekloss i bildet, f.eks. ved utvelgelse av en byggekloss på en palett og draing av en grafisk fremstilling av byggeklossen til en brukervalgt posisjon i 2D-displayområdet i samsvar med musebevegelsen, der 2D-displayområdet utgjør en 2D-projeksjon av 3D-bildet. Når bevegelsen til musestoppene stopper i minst en forbestemt tid, f.eks. slik som påvist av en GUI-hendelsesbehandler, går i en utførelse prosessen fremover ved trinn 503. Fig. 6a-b illustrerer et eksempel av posisjoneringen til en ny byggekloss på toppen av en tidligere plassert byggekloss. Den nye byggeklossen 601 er illustrert som en begrens-ningskasse 620 med en øvre ytterflate 621 og en nedre ytterflate 622, idet hver omfatter flere forbindelsespunkter, generelt betegnet 603, på et forbindelsesgitter, slik som omtalt over. Liknende har den tidligere plasserte byggeklossen 602 flere forbindelsespunkter, generelt betegnet 604. Forbindelsesgitrene og forbindelsespunktene på sideytterflatene av byggeklossene 601 og 602 vises ikke på fig. 6a. I dette eksemplet omfatter 3D-bildet kun en tidligere plassert byggekloss 602. Fig. 6a illustrerer en 2D-projeksjon av byggeklossene 601 og 602, slik som sett på 2D-displayområdet 600 av en computerskjerm, tilsvarende et 2D-display koordinatsystem 630. Fig. 6b illustrerer forholdet mellom 2D-projeksjonen i displayområdet 600 og 3D-posisj onene til byggeklossene 601 og 602 i 3D-koordinatsystemet 640. Når den nye byggeklossen 601 er plassert på skjermen 600 bestemmes kun dens koordinater i 2D-koordinatsystemet 630, og hvilken som helst 3D-posisjon som gir projeksjonen 601a er forenlig med denne projeksjonen, slik som illustrert av de strekede projeksjonslinjene
631. Den brukerstyrte plasseringen v byggeklossen på skjermen gir følgelig ikke innfor-masjon om den tredje dimensjonen ortogonalt i forhold til displayområdet. På fig. 6b er projeksjonen en parallell projeksjon, dvs. projiseringslinjene 631 er parallelle med hverandre, tilsvarende en virtuell kameraposisjon 632 uendelig langt fra projeksjonsplanet 600.
Atter med henvisning til fig. 5 bestemmer i trinn 503 prosessen for hvert forbindelsespunkt på den nye byggeklossen hvorvidt det er et forbindelsespunkt som tilhører noen byggekloss (eller til bunnplaten, om noen) allerede tilstede i bildet som har en 2D-projeksjon innenfor et forbestemt nabolag av projeksjonen til dette forbindelsespunktet på den nye byggeklossen. I en utførelse bestemmes for hvert forbindelseselement på den nye byggeklossen en sirkel rundt forbindelseselementet i displayområdet. Liknende bestemmes tilsvarende sirkler av forbindelseselementer som allerede er i bildet. Dersom noen av disse sirklene overlapper med sirkelen til forbindelseselementet på den nye byggeklossen velges de tilsvarende forbindelseselementene som kandidatforbindelseselementer.
På fig. 6a er dette trinnet illustrert for et forbindelsespunkt 605 på den nye byggeklossen 601. Henvisningstallet 606 betegner en sirkel rundt forbindelseselementet 605. Likeledes betegner henvisningstallene 608, 610 og 612 sirkler ved henholdsvis forbindelseselementer 607, 609 og 611 på byggeklossen 602, hvilke sirkler overlapper sirkelen 605. I dette eksemplet bestemmes følgelig forbindelseselementene 607, 609 og 611 som kandidatforbindelseselementer. Det forstås at i dette eksemplet ville ytterligere forbindelseselementer velges. Deres sirkler vises imidlertid ikke på fig. 6b.
Det påpekes at sirklene 606, 608, 610 og 612 tilsvarer projeksjoner av tilsvarende kuler rundt henholdsvis forbindelseselementene 605, 607, 609 og 611. Det forstås at i alternative utførelser kan projeksjoner av forskjellige typer av volumelementer bruks for å bestemme hvilke forbindelseselementer har projeksjoner i et nabolag av forbindelseselementene på den nye byggeklossen. Ytterligere eksempler av volumelementer er blitt omtalt i forbindelse med fig. 4c over. Når kuler brukes er bestemmelsen av den tilsvarende projeksjonen spesielt effektiv ettersom projeksjonen av en kule alltid er en sirkel, uavhengig av synsstedet.
I en foretrukket utførelse tilsvarer diameteren av sirklene avstanden mellom tilgrensende forbindelsespunkt i hvert av gitrene.
Det forstås videre at i noen utførelser kan letingen etter kandidatforbindelseselementer begrenses til et undersett av forbindelseselementer på byggeklossene som allerede er tilstede i bildet, for derved å redusere tiden påkrevd for å fullføre letingen og størrelsen av den resulterende liste med kandidatforbindelseselementer. Letingen kan for eksempel begrenses til forbindelseselementer som ikke allerede er koblet til et annet forbindelseselement. I en utførelse begrenses letingen til forbindelseselementer med egnede forbindelsesegenskaper, dvs. forbindelseselementer som faktisk kan kobles til forbindelseselementene på den nye byggeklossen, slik som vil omtales i større detalj under.
Trinn 503 resulterer i en liste 520 av kandidatforbindelseselementer på byggeklossene som allerede er tilstede i bildet. Følgelig er 3D-koordinatene til kandidatforbindelseselementene kjent. I en utførelse omfatter hver inntreden i listen 520 3D-koordinatene til et kandidatforbindelsespunkt på byggeklossen allerede tilstede i bildet, en identifikator som identifiserer den tilsvarende byggeklossen og en identifikator og/eller koordinater som identifiserer det tilsvarende forbindelseselementet på den nye byggeklossen.
I trinn 505 sorteres listen 520 av kandidatforbindelseselementer ved rangering av kandidatforbindelseselementene i samsvar med et forbestemt sett av rangeringsregler.
I en utførelse rangeres kandidatforbindelseselementene i samsvar med deres avstand fra det virtuelle kameraet, dvs. deres innbyrdes avstand fra projeksjonsplanet som tilsvarer displayområdet 600, og i samsvar med 2D-avstanden til kandidatposisjonen og den brukervalgte plasseringen, dvs. forskyvningen av projeksjonen i displayområdet av kandidatposisjonen fra posisjonen til den grafiske fremstillingen av den nye byggeklossen. Forbindelseselementer for hvilke kandidatposisjonen er nærmere kameraposisjonen kan for eksempel rangeres høyere, dvs. mer sannsynlig til å tilsvare posisjonen tiltenkt av brukeren. Likeledes kan kandidatforbindelsespunkter for hvilke forskyvningen fra den brukervalgte posisjonen i 3D er høy rangeres lavere.
I noen utførelser gjennomføres ordningen i samsvar med andre kriterier i tillegg eller alternativt til forholdene over. Eksempler av slike posisjonsrangeringsregler kan innbe-fatte ett eller flere av det etterfølgende: den innbyrdes avstanden fra kameraposisjonen;
forskyvningen fra den brukervalgte 2D-posisjonen;
graden av nødvendig rotasjon av byggeklossen for å tillate en forbindelse med
kandidatforbindelseselementet;
en synlighetstest, f.eks. hvorvidt kandidatforbindelseselementet er synlig fra den aktuelle kameraposisjonen. I noen utførelser kasseres kandidatforbindelseselementer som ikke er synlige fra den aktuelle kameraposisjonen fra listen.
I noen utførelser kan flere eller alle av kriteriene over brukes i kombinasjon, f.eks. ved definering av en kostnadsfunksjon for hvilken forholdene over bidrar, valgfritt med respektive veiingsfaktorer. I andre utførelser gjennomføres først en rangering i samsvar med en av reglene over, f.eks. den nødvendige 2D-forskyvningen. Dersom to eller flere kandidatforbindelseselementer har den samme graderingen kan en ytterligere regel brytes for å skjelne mellom disse, f.eks. den innbyrdes avstanden fra kameraet, den nødvendige rotasjonen eller liknende.
Det oppnås følgelig en rangering av de bestemte kandidatforbindelseselementene, og den ordnede listen 520 tilsvarer en ordnet liste i samsvar med rangeringen over. Ved dette punkt oppfatter den ordnede listen 520 alle kandidatforbindelsespunkter som ikke er vraket basert på posisjonsrangeringsreglene over.
I trinn 508 bestemmes det hvorvidt den ordnede listen 520 er tom. Dersom listen er tom, dvs. det ikke var noen forbindelseselementer med en tilstrekkelig liten projisert avstand til et forbindelseselement på den nye byggeklossen, avvises 3D-plasseringen (trinn 509), dvs. prosessen slutter; ellers fortsetter prosessen ved 510.
Dersom prosessen slutter ved avvisning av 3D-plasseringen (trinn 509) angis dette fortrinnsvis til brukeren, f.eks. ved tildannelse av en synsangivelse. Den grafiske fremstillingen av byggeklossen som er beveget i reaksjon på musebevegelser kan for eksempel vises i en form som angir at byggeklossen ikke er blitt plassert ennå. Kun når en 3D-plassering er påvist vender den grafiske fremstillingen, for derved å angi til brukeren at plasseringen er fullført. Så lenge 3D-plasseringen ikke er vellykket fullført kan for eksempel byggeklossen vises gjennomsiktig og/eller med en synlig begrens-ningskasse og/eller blinkende og/eller i en annen passende form.
I trinn 510 velges kandidatforbindelseselementet som har den høyeste rangeringen, og den nye byggeklossen plasseres i 3D-koordinatsysteemt, slik at koordinatene til det valgte kandidatforbindelsespunktet og det tilsvarende forbindelsespunktet på den nye byggeklossen sammenfaller. En kandidatposisjon i samsvar med den høyeste rangeringen velges følgelig. Det forstås at denne plasseringen kun er tentativ, dvs. den vises ennå ikke på computerskjermen.
I trinn 511 verifiserer prosessen hvorvidt forbindelsen er i samsvar med et forbestemt sett av forbindelsesregler, for eksempel hvorvidt forbindelseselementene ved disse og andre forbindelsespunkter på den nye byggeklossen tillater en forbindelse med forbindelseselementene på byggeklossen(e) til hvilke(n) den nye byggeklossen skal kobles. Denne testen av hvilken en utførelse vil omtales i større detalj under vil også betegnes som konnektivitetsverifikasjon. I en foretrukket utførelse verifiserer prosessen videre hvorvidt den nye byggeklossen, når koblet til kandidatforbindelseselementet, ville være synlig fra kameraposisjonen, eller hvorvidt den ville tildekkes fullstendig av den ekstreme strukturen. Dersom forbindelsen avvises eller byggeklossen ikke ville være synlig forkastes den tentative 3D-plasseringen og prosessen fortsetter ved trinn 512; eller dersom prosessen vellykket verifiserer forbindelsen fortsetter prosessen ved trinn 513.
I trinn 512 fjernes kandidatforbindelsespunktet for hvilket forbindelsen ble nektet fra ordrelisten 520, og prosessen returnerer til trinn 508, dvs. det neste kandidatforbindelsespunktet velges, om noe.
I trinn 513, dvs. dersom forbindelsestesten var vellykket, godtas 3D-plasseringen, dvs. den grafiske fremstillingen av strukturen oppdateres ved "knepping" av den nye byggeklossen i den godtatte posisjonen og ved endring av utseendet til byggeklossen. I en utførelse kan brukeren godta posisjonen, f.eks. ved klikking med musen på byggeklossen, for derved å fullføre plasseringsprosessen. Dersom brukeren ønsker å plassere byggeklossen i en annen posisjon kan brukeren simpelthen bevege musen uten klikking på klossen, for derved å endre utseendet til den nye byggeklossen tilbake til det opprin-nelige utseendet og bevege byggeklossen til en annen posisjon på 2D-displayområdet.
Prosessen bevarer et sett av datastrukturer, idet hver datastruktur utgjør en byggekloss plassert innenfor 3D-bildet, f.eks. slik som omtalt i forbindelse med fig. 4a-b. Når god-takelse av 3D-plasseringen til den nye byggeklossen oppdaterer prosessen settet av datastrukturer ved tilføyelse av en ny forekomst av datastrukturen tilsvarende den nye byggeklossen som del av det settet av datastrukturer. Fig. 7a-b illustrerer to posisjoner av den nye byggeklossen fra fig. 6a-b som resultat av svakt avvikende 2D-plasseringer av den grafiske fremstillingen på skjermen. På fig. 7a plasseres byggeklossen 701 på toppen av strukturen 702. På fig. 7b posisjoneres på den annen side byggeklossen 701 på bunnplaten 703 bak strukturen 702. En liten justering av 2D-posisjonen til den nye byggeklossen tillater følgelig at brukeren differensierer mellom to ganske ulike plasseringer i 3D-bildet. Fig. 7a-b illustrerer videre et avvikende utseende for den nye byggeklossen 701, mens den manipuleres av brukeren sammen-liknet med byggeklossene 704 til strukturen 702. Fig. 8 viser et flytdiagram for en utførelse av underprosessen 511 med konnektivitetsverifikasjon av en ny byggekloss i en tentativ 3D-plassering. Prosessen verifiserer følgelig hvorvidt den nye byggeklossen kan kobles til minst en annen byggekloss på en eksisterende struktur. Den andre byggeklossen vil betegnes som den andre byggeklossen.
I et innledende trinn 801 utfører prosessen kollisjonsbestemmelse og en synlighetstest, dvs. en bestemmelse av hvorvidt den nye byggeklossen krysser eventuelle andre byggeklosser allerede tilstede i bildet, og en test med hensyn til hvorvidt den nye byggingen ville tildekkes fullstendig av den eksisterende strukturen og således ikke synlig fra den aktuelle kameraposisjonen. Kollisjonsbestemmeisen kan utføres med hvilken som helst passende kollisjonsbestemmelsesmetode, fortrinnsvis en kollisjonsbestemmelsesmetode basert på et begrensningsvolum av byggeklossen. Eksempler på slike algoritmer omtales i f.eks. David H. Eberly: "3D Game Engine Design", Morgan Kaufmann, 2001. Likeledes kan synlighetstesten gjennomføres med hvilken som helst passende metode kjent innen området. Dersom et ugyldig skjæringspunkt påvises, dvs. dersom begrensningsvolumene til byggeklossene krysser, eller dersom byggeklossen ikke ville være synlig fra den aktuelle kameraposisjonen, forkastes plassering av byggeklossen ved denne posisjonen og orienteringen; ellers dersom byggeklossen ville være minst delvis synlig og dersom et gyldig skjæringspunkt påvises, dvs. dersom minst en del av overflatene av begrensningskassene krysser, men ikke deres volumer, fortsetter prosessen ved trinn 802.
I trinn 802 bestemmes alle forbindelsespunkter på den nye byggeklossen og på den andre byggeklossen som tilhører det valgte skjæringspunktet på overflatene av begrensningskassene. Kun i forbindelsespunktene som ikke allerede er koblet trenger å betrakt-es; disse forbindelsespunktene vil betegnes som de relevante forbindelsespunkter.
I trinn 803 velges et første relevant forbindelsespunkt på den nye byggeklossen, f.eks. et vilkårlig valgt forbindelsespunkt.
I trinn 804 kontrollerer prosessen for det valgte forbindelsespunktet på den nye byggeklossen hvorvidt det er eventuelle relevante forbindelsespunkter på den andre byggeklossen med de samme koordinater som det valgte forbindelsespunktet. I den utførelse der byggeklossene er plassert i et særskilt volumreferansegitter, og alle koordinater er multipler av en vilkårlig enhetslengde, kan et nøyaktig motstykke av koordinater kreves. I et kontinuerlig eller kvasikontinuerlig referansekoordinatsystem kan det kreves at gitterpunktene sammenfaller innenfor forbestemte grenser.
Dersom det ikke finnes noe slikt motsvarende forbindelsespunkt fortsetter prosessen ved trinn 814.
I trinn 814 bestemmes det hvorvidt det er eventuelle andre relevante forbindelsespunkter innenfor et forbestemt nabolag av det valgte forbindelsespunktet. I en utførelse der avstanden mellom to tilliggende forbindelseselementer er 10 LU, kan for eksempel det forbestemte nabolaget velges til å være terningen (x ± 5 LU, y ± 5 LU, z ± 5 LU) rundt det valgte forbindelsespunktet ved (x, y, z). Dersom det er noen andre relevante forbindelsespunkter innenfor et forbestemt nabolag av det valgte forbindelsespunktet forkastes forbindelse av de to byggeklossene (trinn 811) og algoritmen slutter. Når forbindelsespunktene i denne utførelsen er plassert på et regelmessig gitter kan følgelig en gyldig plassering av byggeklossen bestemmes effektivt: dersom en feiljustering med et relevant forbindelsespunkt på den andre byggeklossen påvises for ett av de relevante forbindelsespunktene på den nye byggeklossen trenger ikke de resterende forbindelsespunktene på den nye byggeklossen å kontrolleres, for derved å øke hastigheten til bestemmelsesprosessen.
Dersom ingen konflikt av det relevante forbindelsespunktet påvises i trinn 814 fortsetter prosessen i trinn 809.
Dersom et motsvarende forbindelsespunkt var påvist i trinn 804 fortsetter prosessen ved trinn 805, der det bestemmes hvorvidt det er eventuelle andre forbindelsespunkter innenfor et forbestemt nabolag av det valgte forbindelsespunktet, f.eks. i en terning (x ± 5 LU, y ± 5 LU, z ± 5 LU) rundt det valgte forbindelsespunktet ved (x, y, z), slik som omtalt over. Dersom et annet forbindelsespunkt er påvist i det forbestemte nabolaget forkastes posisjonen (trinn 811), ellers fortsetter prosessen ved trinn 806.
I alternative utførelser kan begrensningen over ikke ønskes. Enn videre kan i enda en annen utførelse begrensningen over begrenses til visse forbindelsestyper.
I trinn 806 bestemmer prosessen hvorvidt det valgte forbindelsespunktet og det påviste motsvarende forbindelsespunktet har motsatte retninger, dvs. dersom deres tilknyttede akser er langs en felles linje, men i motsatt retning. Følgelig godtas kun forbindelseselementer posisjonert i en innbyrdes orientering egnet for at disse danner inngrep.
Det påpekes at i alternative utførelser kan denne begrensningen mildnes, f.eks. ved akseptering av et område av orienteringer i utførelser der forbindelseselementene godtas i et område av orienteringer.
Dersom den innbyrdes retningen til forbindelsespunktene godtas fortsetter prosessen ved trinn 807, ellers avvises posisjonen (trinn 811).
I trinn 807 sammenliknes forbindelsestypene til det valgte forbindelsespunktet og det tilsvarende påviste motsvarende forbindelsespunktet. I en utførelse har hvert forbindelsespunkt en tilknyttet forbindelsestype, f.eks. "knast", "hull", "kant", "hjørne", "hengsel", "tapp", "liten tapp" etc. Prosessen har adgang til en forbindelsestabell 813 lagret i minnet. Forbindelsestabellen omfatter en konnektivitetstype for alle par av forbindelsestyper for å angi hvorledes et spesielt par av forbindelsestyper påvirker forbindelsen av to byggeklosser. For eksempel kan hvert par av forbindelsestyper knyttes til en konnektivitetstype av "riktig", uriktig" eller "hulrom". Konnektivitetstypen "riktig" angir at en forbindelse er gyldig, og de tilsvarende forbindelseselementene griper for å forbinde de to byggeklossene, f.eks. en knast som griper med et tilsvarende hull. Konnektivitetstypen "uriktig" angir at en forbindelse ikke er tillatt. En forbindelse mellom en knast og en knast er for eksempel ikke mulig: ikke bare unnlater de å gripe med hverandre for å tildanne en forbindelse, men de forstyrrer/kolliderer endog for å gjøre en forbindelse umulig. Til sist angir konnektivitetstypen "hulrom" at det er intet som forhindrer en forbindelse, men ingenting som faktisk kobler heller. For eksempel er dette tilfellet for et hull og et hull. For et gitt par forbindelsespunkter kan følgelig prosessen gjenfinne den tilsvarende konnektivitetstypen fra den lagrede forbindelsestabellen 813.
I det senere trinn 808 testes hvorvidt konnektivitetsresultatet er "uriktig", dvs. ingen gyldig forbindelse er mulig mellom de tilsvarende forbindelsestyper. Dersom konnektivitetsresultatet er "uriktig" avvises posisjonen til den nye byggeklossen (trinn 811), ellers lagres konnektivitetsresultatet, og prosessen fortsetter til trinn 809.
I trinn 809 testes det hvorvidt alle relevante forbindelsespunkter på den nye byggeklossen er blitt prosessert. Dersom ikke velges et enda uprosessert relevant forbindelsespunkt (trinn 812) og prosesseres ved gjennomføring av trinnene 804, 805, 806, 807 og 808 over med det nye valgte forbindelsespunktet.
Dersom alle relevante forbindelsespunkter på den nybygde klossen er blitt prosessert og posisjonen ikke er blitt avvist, godtas posisjonen, og prosessen fortsetter ved trinn 810. I trinn 810 bestemmes det, basert på de lagrede konnektivitetsresultatene, hvorledes byggeklossene kobles og deres respektive datastrukturer oppdateres følgelig.
Innledningsvis kontrolleres det hvorvidt alle konnektivitetsresultater er "hulrom". Dersom ja, dvs. dersom ingenting forhindrer en posisjon av byggeklossen, men ingen av forbindelseselementene faktisk danner inngrep for å koble byggeklossene, tillates den nye bygeklossen i dens foreliggende posisjon. I en utførelse kan en ytterligere algoritme avgjøre, f.eks. basert på begrensningsvolumene, hvorvidt en fysisk byggekloss plassert i dens posisjon ville falle ned, vippe etc., og følgelig tillate eller forkaste posisjonen.
Ellers, dvs. dersom ett eller flere konnektivitetsresultater ikke er riktig bestemmer prosessen hvorledes byggeklossene er koblet, dvs. hvorvidt de er koblet stivt eller hvorvidt forbindelsen muliggjør innbyrdes rotasjon, overføring og/eller liknende.
Så snart datastrukturene er oppdatert slutter underprosessen og returnerer til den samlede prosessen fra figur 5.
Fig. 9a-b illustrerer forbindelsen av en byggekloss innbefattende en rotasjon. I noen utførelser kontrolleres forbindelsespunktene kun for orienteringen til den nye byggeklossen som er synlig på skjermen, dvs. en brukervalgt orientering eller en standard-orientering. Når en bruker ønsker å koble en ny byggekloss etter en rotasjon av byggeklossen kan orienteringen styres med egnede brukergrensesnittstyreenheter, f.eks. ved hjelp av et rotasjonsverktøy som kan velges i en meny på et grafisk brukergrensesnitt, ved hjelp av tastaturkommandoer eller liknende. En bruker kan for eksempel styre orienteringen til den nye byggeklossen for å skritte gjennom en sekvens av særskilte orienteringer, f.eks. tilsvarende 90 grads roteringer rundt ulike akser. På fig. 9a og 9b er byggeklossen 901 for eksempel koblet til strukturen 902 på avvikende måter, avhengig av den brukervalgte orienteringen til byggeklossen 901. På fig. 9a er byggeklossen 901 koblet på toppen av strukturen 902. På fig. 9b er byggeklossen 901 koblet til knaster 903 på strukturen 902 som er posisjonert i et vertikalt plan.
I en alternativ utførelse tillates en automatisk gjenorientering av byggeklossen. Når kandidatposisjoner analyseres i trinn 510 og 511 på fig. 5 kan for eksempel forskjellige orienteringer av den nye byggeklossen vurderes som ytterligere kandidatposisjoner og analyseres i samsvar med implementeringen av rangering og senere konnektivitetsverifikasjon. Når den nye byggeklossen skal kobles til et hengsel ved noen vinkel er det for eksempel ikke nødvendig for brukeren perfekt å innrette den nye byggeklossen etter aksen til hengselet. Prosessen vil vurdere roterte posisjoner og koble den nye byggeklossen etter en rotasjon. I noen utførelser begrenses automatisk gjenorienteringen til en forbestemt romvinkel, f.eks. 45 grader, 30 grader eller liknende, for derved å unngå store rotasjoner som kan forvirre brukeren og føre til utilsiktede resultater.
Det er en annen fordel med prosessen omtalt over at brukeren mottar en klar angivelse med hensyn til hvor den nye byggeklossen vil plasseres og kobles. Enn videre tas små korrigeringer av 2D-posisjonen til den nye byggeklossen på skjermen umiddelbart i betraktning, slik som styrt av brukeren, for derved å gi et inntrykk av en jevn og naturlig arbeidsflyt.
Det forstås at en person med erfaring kan, innenfor omfanget av oppfinnelsen, imple-mentere variasjoner av fremgangsmåten over. For eksempel kan rekkefølgen av noen av trinnene over endres, trinnene kan kombineres etc.
Etter å ha plassert den nye byggeklossen i et 3D-bilde kan en bruker for eksempel aktivere et søkerverktøy for søking av liknende posisjoner. I en utførelse kan søker-verktøyet tillate at brukeren skritter gjennom posisjonene til den ordnede listen 520 fra fig. 5, for derved å tillate at brukeren velger en av de mulige posisjoner.
Uttrykket "manipulering" av en digital fremstilling av en gjenstand menes å henvise til hvilken som helst brukerstyrt manipulering av den digitale fremstillingen etc. Forbindelsen av en ny byggekloss, bevegelsen av en eksisterende byggekloss fra en posisjon til en annen, eller hvilken som helst annen prosedyreendring av posisjonen til en byggekloss i et 3D-bilde.

Claims (14)

1. Fremgangsmåte for manipulering av en tredimensjonal virtuell byggeklossmodell ved hjelp av todimensjonale markørbevegelser, idet den virtuelle bygeklossmodellen innbefatter flere virtuelle byggeklosser (301) som hver innbefatter flere forbindelseselementer (303, 311, 312, 313, 322) for kobling av den virtuelle byggeklossen med en annen virtuell byggekloss i samsvar med et sett av forbindelsesregler,karakterisert vedat fremgangsmåten omfatter det tildannes en digital fremstilling (111) av en struktur som omfatter flere av de virtuelle byggeklossene i et tredimensjonalt koordinatsystem; - ved hjelp av markørbevegelser i et todimensjonalt computer display som utgjør en projeksjon av strukturen, posisjoneres (501) en todimensjonal projeksjon av en første virtuell byggekloss som skal kobles til strukturen, for å resultere i to-dimensj onale pos isj onskoordinater; - fra de todimensjonale posisjonskoordinatene bestemmes (503) flere tredimensjonale kandidatposisjoner for den første virtuelle byggeklossen i det tredimensj onale koordinatsystemet; utvelgelse (510) av en av kandidatposisj onene basert på forbindelsesreglene og et for-bestemt sett av posisjonsrangeringsregler; og den første byggeklossen kobles (513) til strukturen ved den valgte kandidatposisj onen.
2. Fremgangsmåte ifølge krav 1,karakterisert vedat trinnet ved bestemmelse av flere tredimensjonale kandidatposisjoner videre omfatter at flere kandidatorienteringer for den første virtuelle byggeklossen bestemmes i det tredimensjonale koordinatsystemet.
3. Fremgangsmåte ifølge krav 1 eller 2,karakterisertved at fremgangsmåten flere kandidatforbindelseselementer bestemmes (503) til strukturen, idet hvert av kandidatforbindelseselementene har en projeksjon i det todimensjonale displayet innenfor et forbestemt nabolag (606, 608, 610, 612) rundt en projeksjon av et forbindelseselement til den første virtuelle byggeklossen; ett av kandidatforbindelseselementene velges (509, 510) basert på forbindelsesreglene, og det forbestemte settet av posisjonsrangeringsregler; og dersom en forbindelse mellom den første virtuelle byggeklossen og strukturen er gyldig i samsvar med settet av forbindelsesregler kobles (513) den første virtuelle byggeklossen med strukturen via minst det valgte kandidatforbindelsesele-mentet.
4. Fremgangsmåte ifølge krav 3,karakterisert vedat trinnet med utvelgelse av ett av kandidatforbindelseselementene videre omfatter at kandidatforbindelseselementene rangerer (509) med hensyn til deres avstand fra en virtuell kameraposisjon.
5. Fremgangsmåte ifølge krav 3 eller 4,karakterisertv e d at trinnet med utvelgelse av ett av kandidatforbindelseselementene videre omfatter at det forkastes kandidatforbindelseselementer som ikke er synlige fra den aktuelle virtuelle kameraposisjonen.
6. Fremgangsmåte ifølge hvilket som helst av kravene 3 til 5,karakterisert vedat trinnet med utvelgelse av ett av kandidatforbindelseselementene videre omfatter at kandidatforbindelseselementene rangeres med hensyn til avstanden mellom deres todimensjonale projeksjoner og den todimensjonale projeksjonen av det tilsvarende forbindelseselementet på den første virtuelle byggeklossen.
7. Fremgangsmåte ifølge hvilket som helst av kravene 3 til 6,karakterisert vedat det i den digitale fremstillingen av strukturen omfattes for hver virtuelle byggekloss flere rektangulære gitre (405, 406) som tilsvarer minst en av overflatene til den virtuelle byggeklossen, idet hvert regelmessige gitter omfatter flere gitterpunkter (407), og idet hvert gitterpunkt utgjør et forbindelseselement.
8. Fremgangsmåte ifølge krav 7,karakterisert vedat det forbestemte nabolaget rundt en projeksjon av et forbindelseselement på den første virtuelle byggeklossen har en diameter tilsvarende avstanden mellom tilgrensende gitterpunkter på det tilsvarende regelmessige gitteret.
9. Fremgangsmåte ifølge hvilket som helst av kravene 1 til 8,karakterisert vedat trinnet med bestemmelse av kandidatposisj onene videre innbefatter at den første byggeklossen roteres for å få kandidatposisjoner for en rotert byggekloss.
10. Fremgangsmåte ifølge krav 9,karakterisert vedat roteringen av den første byggeklossen begrenses til en forbestemt romvinkel rundt en brukervalgt orientering.
11. Fremgangsmåte ifølge hvilket som helst av kravene 1 til 10,karakterisert vedat fremgangsmåten videre omfatter at det mottas en brukerkommando som styrer en brukervalgt orientering av den første virtuelle byggeklossen.
12. Fremgangsmåte ifølge krav 11,karakterisert vedat den brukervalgte orienteringen begrenses til en av et sett særskilte orienteringer.
13. Fremgangsmåte ifølge hvilket som helst av kravene 1 til 12,karakterisert vedat den todimensjonale projeksjonen utgjøres av en parallell projeksjon.
14. Dataprosesseringssystem omfattende et lagringsmedium som lagret på dette har et computerprogram omfattende en programkodeinnretning for gjennomføring av alle trinnene gitt ved ett av kravene 1 til 13, når programmet kjører på dataprosesserings-systemet.
NO20055872A 2003-05-20 2005-12-12 Fremgangsmåte og system for manipulering av en digital fremstilling av en tredimensjonal gjenstand NO337287B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DKPA200300759 2003-05-20
PCT/DK2004/000341 WO2004104811A2 (en) 2003-05-20 2004-05-13 Method and system for manipulating a digital representation of a three-dimensional object

Publications (2)

Publication Number Publication Date
NO20055872L NO20055872L (no) 2006-02-09
NO337287B1 true NO337287B1 (no) 2016-02-29

Family

ID=33462050

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20055872A NO337287B1 (no) 2003-05-20 2005-12-12 Fremgangsmåte og system for manipulering av en digital fremstilling av en tredimensjonal gjenstand

Country Status (10)

Country Link
US (1) US7755620B2 (no)
EP (1) EP1625488A2 (no)
JP (1) JP4418468B2 (no)
KR (1) KR101071011B1 (no)
CN (1) CN100340960C (no)
CA (1) CA2524031C (no)
HK (1) HK1090720A1 (no)
NO (1) NO337287B1 (no)
PL (1) PL378138A1 (no)
WO (1) WO2004104811A2 (no)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596473B2 (en) 2003-05-20 2009-09-29 Interlego Ag Method of constructing a virtual construction model
US7480597B2 (en) 2003-05-20 2009-01-20 Lego A/S Method, system and storage medium for generating virtual brick models
US7467154B2 (en) 2005-06-29 2008-12-16 Microsoft Corporation Producing a locally optimal path through a lattice by overlapping search
US20080036758A1 (en) * 2006-03-31 2008-02-14 Intelisum Inc. Systems and methods for determining a global or local position of a point of interest within a scene using a three-dimensional model of the scene
US8374829B2 (en) 2007-03-16 2013-02-12 Lego A/S Automatic generation of building instructions for building element models
US20100138793A1 (en) * 2008-12-02 2010-06-03 Microsoft Corporation Discrete objects for building virtual environments
US9092110B2 (en) * 2008-12-16 2015-07-28 Cadence Design Systems, Inc. Method and system for implementing a user interface with ghosting
US8255807B2 (en) * 2008-12-23 2012-08-28 Ganz Item customization and website customization
KR101705924B1 (ko) * 2009-05-27 2017-02-10 오블롱 인더스트리즈, 인크 공간 운영 시스템을 위한 공간, 다중-모드 제어 장치
WO2011017101A2 (en) 2009-07-27 2011-02-10 Fina Biosolutions, Llc Method for producing protein-carbohydrate vaccines reduced in free carbohydrate
US20110029904A1 (en) * 2009-07-30 2011-02-03 Adam Miles Smith Behavior and Appearance of Touch-Optimized User Interface Elements for Controlling Computer Function
US9498721B2 (en) 2009-08-04 2016-11-22 Eyecue Vision Technologies Ltd. System and method for object extraction
US9595108B2 (en) 2009-08-04 2017-03-14 Eyecue Vision Technologies Ltd. System and method for object extraction
WO2011039041A2 (en) * 2009-10-02 2011-04-07 Lego A/S Connectivity depended geometry optimization for real-time rendering
EP2333683A1 (en) * 2009-11-06 2011-06-15 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
EP2333682B1 (en) * 2009-11-06 2020-05-20 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
US9044517B2 (en) 2009-12-17 2015-06-02 Fina Biosolutions, Llc Activation of polysaccharides via the cyanylating agent, 1-cyano-4-pyrrolidinopyridinium tetrafluoroborate (CPPT), in the preparation of polysaccharide/protein conjugate vaccines
US20110165939A1 (en) * 2010-01-05 2011-07-07 Ganz Method and system for providing a 3d activity in a virtual presentation
US20120314776A1 (en) * 2010-02-24 2012-12-13 Nippon Telegraph And Telephone Corporation Multiview video encoding method, multiview video decoding method, multiview video encoding apparatus, multiview video decoding apparatus, and program
US9832465B2 (en) * 2010-02-24 2017-11-28 Sharp Kabushiki Kaisha Image encoding device and image decoding device
JP5223062B2 (ja) * 2010-03-11 2013-06-26 株式会社ジオ技術研究所 3次元地図描画システム
JP2011205513A (ja) * 2010-03-26 2011-10-13 Aisin Seiki Co Ltd 車両周辺監視装置
DK2560738T3 (da) 2010-04-23 2019-08-26 Serum Inst India Ltd Simpel fremgangsmåde til samtidig fjernelse af flere urenheder fra dyrkningssupernatanter til ultralave niveauer
US8836719B2 (en) 2010-04-23 2014-09-16 Ganz Crafting system in a virtual environment
KR101379188B1 (ko) * 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
WO2011145763A1 (ko) * 2010-05-20 2011-11-24 갤럭시아커뮤니케이션즈 주식회사 선택적 움직임 검색영역을 이용한 움직임 보상기법이 적용되는 동영상 압축부호화장치및 복호화 장치와 움직임 보상을 위한 선택적 움직임 검색영역 결정방법
CN102907094A (zh) * 2010-05-20 2013-01-30 星河通信株式会社 适用利用选择性参考影像的运动补偿方法的视频压缩编码装置及解码装置和用于运动补偿的选择性参考影像决定方法
CN102004623B (zh) * 2010-11-29 2013-02-27 深圳市九洲电器有限公司 一种三维图像显示装置及方法
CN102614658A (zh) * 2011-01-29 2012-08-01 无锡爱睿芯电子有限公司 交互式电子积木系统
CN105245903B (zh) * 2011-02-22 2018-09-07 太格文-Ii有限责任公司 图像解码方法和图像解码装置
ES2718654T3 (es) 2011-02-22 2019-07-03 Sun Patent Trust Procedimiento de codificación de imagen, procedimiento de descodificación de imagen, dispositivo de codificación de imagen, dispositivo de descodificación de imagen y dispositivo de codificación / descodificación de imagen
WO2012135843A1 (en) 2011-03-31 2012-10-04 Tetris Holding, Llc Systems and methods for manipulation of objects
US9821242B2 (en) 2011-05-23 2017-11-21 Lego A/S Generation of building instructions for construction element models
EP2714222B2 (en) 2011-05-23 2019-07-31 Lego A/S A toy construction system for augmented reality
EP2729225B1 (en) 2011-07-05 2018-12-05 Lego A/S Method and system for designing and producing a user-defined toy construction element
LT3843394T (lt) 2011-07-19 2024-05-10 Tagivan Ii Llc Kodavimo būdas
CN103930826B (zh) * 2011-09-13 2016-12-28 富士胶片株式会社 立体摄像装置
US20130107029A1 (en) * 2011-10-26 2013-05-02 Mysnapcam, Llc Systems, methods, and apparatus for monitoring infants
US9288508B2 (en) * 2011-11-08 2016-03-15 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US9350992B2 (en) 2011-11-18 2016-05-24 Google Technology Holdings LLC Explicit way for signaling a collocated picture for high efficiency video coding
US9392235B2 (en) 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
WO2013075042A1 (en) 2011-11-18 2013-05-23 General Instrument Corporation Efficient storage of motion information for high efficiency video coding
BR112014012187A2 (pt) 2011-11-21 2017-05-30 Motorola Mobility Llc determinação implícita e determinação implícita e explícita combinadas de imagem colocalizada para predição temporal
US9639959B2 (en) * 2012-01-26 2017-05-02 Qualcomm Incorporated Mobile device configured to compute 3D models based on motion sensor data
US20130235038A1 (en) * 2012-03-06 2013-09-12 Benjamin Michael Tkacheff Method for Preselecting Three-Dimensional Space for Triggering Automated Construction of a Three-Dimensional Structure
US9549177B2 (en) 2012-04-11 2017-01-17 Google Technology Holdings LLC Evaluation of signaling of collocated reference picture for temporal prediction
EP2837190A1 (en) 2012-04-11 2015-02-18 Motorola Mobility LLC Signaling of temporal motion vector predictor (mvp) flag for temporal prediction
US9319681B2 (en) 2012-07-18 2016-04-19 Google Technology Holdings LLC Signaling of temporal motion vector predictor (MVP) enable flag
US9854138B2 (en) * 2012-09-20 2017-12-26 Gyrus Acmi, Inc. Fixed pattern noise reduction
JP5903023B2 (ja) * 2012-10-04 2016-04-13 株式会社ジオ技術研究所 立体視地図表示システム
JP2014102685A (ja) * 2012-11-20 2014-06-05 Sony Corp 情報処理装置、情報処理方法及びプログラム
US9500526B2 (en) * 2013-02-01 2016-11-22 Dicon Fiberoptics Inc. High-throughput and high resolution method for measuring the color uniformity of a light spot
JP6193135B2 (ja) * 2014-01-21 2017-09-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
JP6027554B2 (ja) 2014-01-21 2016-11-16 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、ブロックシステム、および情報処理方法
CN105917385A (zh) 2014-01-21 2016-08-31 索尼互动娱乐股份有限公司 信息处理设备和信息处理方法
US10583354B2 (en) * 2014-06-06 2020-03-10 Lego A/S Interactive game apparatus and toy construction system
US10646780B2 (en) 2014-10-02 2020-05-12 Lego A/S Game system
KR101653878B1 (ko) * 2014-10-29 2016-09-05 중앙대학교 산학협력단 3차원 형상의 모델링을 위한 블록 및 사용자 단말기와 이를 이용한 3차원 형상의 모델링 방법
GB2532075A (en) 2014-11-10 2016-05-11 Lego As System and method for toy recognition and detection based on convolutional neural networks
CN104616554B (zh) * 2015-02-25 2016-03-16 朱琳莉 虚拟积木系统
US10223589B2 (en) * 2015-03-03 2019-03-05 Cognex Corporation Vision system for training an assembly system through virtual assembly of objects
US20170232354A1 (en) * 2015-03-19 2017-08-17 Edwin N. Arboleda Play Mat System
WO2016153080A1 (ko) * 2015-03-20 2016-09-29 주식회사 와이즈게코 블록을 이용한 3차원 프린터용 모델링 도구
US10552550B2 (en) 2015-09-26 2020-02-04 Intel Corporation Technologies for physical programming
KR101758781B1 (ko) 2016-01-25 2017-07-17 (주)버블블록 조립식 블록 기초판 및 조립식 블록 기초판 조립체
US10275222B2 (en) 2016-03-15 2019-04-30 Intel Corporation Technologies for physical programming
US10102768B2 (en) * 2016-03-19 2018-10-16 Fujitsu Limited Behavior variability and complexity modeling using a construction toy
US10074205B2 (en) 2016-08-30 2018-09-11 Intel Corporation Machine creation of program with frame analysis method and apparatus
US10773179B2 (en) * 2016-09-08 2020-09-15 Blocks Rock Llc Method of and system for facilitating structured block play
CN108339284B (zh) * 2017-01-25 2020-03-10 智高实业股份有限公司 连接积木
CN107029424A (zh) * 2017-05-10 2017-08-11 北京派希教育科技有限公司 一种用于增强现实的积木搭建系统及方法
CN110189580A (zh) * 2018-02-23 2019-08-30 洪荣昭 空间能力评测方法及系统
US10894342B2 (en) 2018-03-29 2021-01-19 Kraft Foods Group Brands Llc System and method for molding comestible building blocks
USD844394S1 (en) 2018-03-29 2019-04-02 Kraft Foods Group Brands Llc Mold
CN109407945B (zh) * 2018-11-08 2021-08-27 山东数字人科技股份有限公司 一种基于vr的三维拼图实现方法和三维拼图系统
CN109615691B (zh) * 2018-11-27 2022-10-28 中国科学技术大学 积木模型生成系统
KR102019629B1 (ko) * 2019-02-15 2019-09-06 박성이 양방향 체결돌기를 갖는 레고식 블록 조립체
EP3956801A4 (en) * 2019-04-15 2022-12-21 Fastbrick IP Pty Ltd METHOD AND SYSTEM FOR DESIGNING BLOCK LAYOUTS FOR USE IN BLOCK PLACEMENT DURING CONSTRUCTION
AU2020257739A1 (en) * 2019-04-15 2021-11-11 Fastbrick Ip Pty Ltd Method and system for designing a block sequence for use in ordering blocks for placement during construction
CN110211243B (zh) * 2019-06-06 2023-12-01 北京悉见科技有限公司 Ar设备及其实体标注方法
CN110992472A (zh) * 2019-12-06 2020-04-10 广东邦宝益智玩具股份有限公司 一种积木3d模型智能搭建系统的构建方法
US11393153B2 (en) * 2020-05-29 2022-07-19 The Texas A&M University System Systems and methods performing object occlusion in augmented reality-based assembly instructions
CN111832104B (zh) * 2020-06-24 2023-07-28 深圳市万翼数字技术有限公司 三维设备模型的建立方法及相关设备
CN117337206A (zh) * 2022-03-03 2024-01-02 任天堂株式会社 信息处理系统、信息处理程序、信息处理方法以及信息处理装置
WO2023157320A1 (ja) * 2022-03-03 2023-08-24 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理方法、および情報処理装置
CN117295545A (zh) * 2022-03-03 2023-12-26 任天堂株式会社 信息处理系统、信息处理程序、信息处理方法以及信息处理装置
CN114896812B (zh) * 2022-06-08 2024-08-02 深圳千帜科技有限公司 一种积木打印的自动排版方法、设备、存储介质及系统
US20240050854A1 (en) * 2022-08-09 2024-02-15 Reuven Bakalash Integrated Reality Gaming
US20240165520A1 (en) * 2022-08-09 2024-05-23 Reuven Bakalash Build and Design-an Integrated-Reality Educational Gaming Application

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000043959A2 (en) * 1999-01-22 2000-07-27 Lego A/S Virtual reality modelling

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694142A (en) * 1993-06-21 1997-12-02 General Electric Company Interactive digital arrow (d'arrow) three-dimensional (3D) pointing
US5463722A (en) * 1993-07-23 1995-10-31 Apple Computer, Inc. Automatic alignment of objects in two-dimensional and three-dimensional display space using an alignment field gradient
US5757361A (en) * 1996-03-20 1998-05-26 International Business Machines Corporation Method and apparatus in computer systems to selectively map tablet input devices using a virtual boundary
US6426745B1 (en) * 1997-04-28 2002-07-30 Computer Associates Think, Inc. Manipulating graphic objects in 3D scenes
US6629065B1 (en) * 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US6389375B1 (en) * 1999-01-22 2002-05-14 Interlego Ag Virtual reality modelling
JP2000306121A (ja) * 1999-04-23 2000-11-02 Mitsubishi Electric Inf Technol Center America Inc ネットワークによって接続された複数のオブジェクト
US6438922B1 (en) * 1999-09-24 2002-08-27 Delefevre Patrick Method of designing a building for maximum compatability with modular forms
US20020196250A1 (en) * 2001-06-20 2002-12-26 Gateway, Inc. Parts assembly for virtual representation and content creation
DE60310431T2 (de) * 2002-10-11 2007-10-11 Lego A/S Verfahren zum erzeugen eines computerlesbaren modelles

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000043959A2 (en) * 1999-01-22 2000-07-27 Lego A/S Virtual reality modelling

Also Published As

Publication number Publication date
KR101071011B1 (ko) 2011-10-06
WO2004104811A2 (en) 2004-12-02
US7755620B2 (en) 2010-07-13
JP2007500906A (ja) 2007-01-18
WO2004104811A3 (en) 2005-05-12
US20070063997A1 (en) 2007-03-22
EP1625488A2 (en) 2006-02-15
NO20055872L (no) 2006-02-09
CN100340960C (zh) 2007-10-03
JP4418468B2 (ja) 2010-02-17
HK1090720A1 (en) 2006-12-29
CA2524031A1 (en) 2004-12-02
PL378138A1 (pl) 2006-03-06
CN1791850A (zh) 2006-06-21
CA2524031C (en) 2015-07-07
KR20060013407A (ko) 2006-02-09

Similar Documents

Publication Publication Date Title
NO337287B1 (no) Fremgangsmåte og system for manipulering av en digital fremstilling av en tredimensjonal gjenstand
US7439972B2 (en) Method of generating a computer readable model
EP2714223B1 (en) Generation of building instructions for construction element models
US6628279B1 (en) System and method for three-dimensional modeling
US7979251B2 (en) Automatic generation of building instructions for building element models
Turk Interactive collision detection for molecular graphics
US9230360B2 (en) Connectivity depended geometry optimization for real-time rendering
US7536655B2 (en) Three-dimensional-model processing apparatus, three-dimensional-model processing method, and computer program
US20130275918A1 (en) 3d interactive menu
CN105912310A (zh) 基于虚拟现实应用的用户界面控件实现方法和装置
Aleotti et al. Object interaction and task programming by demonstration in visuo-haptic augmented reality
Onstott AutoCAD 2017 and AutoCAD LT 2017: Essentials
JP2001291119A (ja) ユーザインタフェース制御装置およびユーザインタフェース制御方法、並びにプログラム提供媒体
JPH07114655A (ja) 図形処理装置
CN115328308A (zh) 一种二三维融合表单处理方法和系统
Whiteley et al. Tangible-Tango: Designing and Fabricating Tangibles with Tangibles.
Han A Concurrent Physical and Digital Modeling Environment/Exploring Tactile and Parametric Interactions in Design Modeling
Danyluk Designing Camera Controls for Map Environments
Grimm et al. The ibar: A perspective-based camera widget
WO2023041832A1 (es) Procedimiento de simulación y entrenamiento de operaciones de inspección ocular en entornos de realidad virtual o realidad aumentada y sistema que implementa dicho procedimiento
Pelz Three-dimensional data input using Sutherland's two-dimensional tablet strategies plus enhanced user feedback
KR20180034892A (ko) 3d 모델링 제어 장치
JP2002074398A (ja) 画像処理装置

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees