ES2939596T3 - Herramienta y procedimiento para dibujar curvas 3D en 2D - Google Patents
Herramienta y procedimiento para dibujar curvas 3D en 2D Download PDFInfo
- Publication number
- ES2939596T3 ES2939596T3 ES20718653T ES20718653T ES2939596T3 ES 2939596 T3 ES2939596 T3 ES 2939596T3 ES 20718653 T ES20718653 T ES 20718653T ES 20718653 T ES20718653 T ES 20718653T ES 2939596 T3 ES2939596 T3 ES 2939596T3
- Authority
- ES
- Spain
- Prior art keywords
- point
- coordinate system
- curve
- plane
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
- G06T19/20—Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—Two-dimensional [2D] image generation
- G06T11/20—Drawing from basic elements
- G06T11/23—Drawing from basic elements using straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of two-dimensional [2D] relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03545—Pens or stylus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04845—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04802—3D-info-object: information is displayed on the internal or external surface of a three dimensional manipulable object, e.g. on the faces of a cube that can be rotated by the user
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Stereoscopic And Panoramic Photography (AREA)
Abstract
Un método para dibujar una curva a mano alzada en una pantalla interactiva 2D en un primer sistema de coordenadas, representándose la curva en un espacio 3D en un segundo sistema de coordenadas, comprendiendo el método: seleccionar, para mostrar en la pantalla interactiva, una vista en perspectiva de un 3D objeto de dibujo, comprendiendo el objeto de dibujo características; crear un primer punto en el primer sistema de coordenadas en la pantalla interactiva; capturar el primer punto en el segundo sistema de coordenadas como punto de inicio de una curva; crear un segundo punto en el primer sistema de coordenadas en la pantalla interactiva; capturar el segundo punto en el segundo sistema de coordenadas como un punto final para la curva; en el que la captura de al menos uno del punto inicial y el punto final comprende fijar el punto en una posición que representa una característica de posición conocida en el segundo sistema de coordenadas. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Herramienta y procedimiento para dibujar curvas 3D en 2D
Campo de la invención
La presente invención se refiere a herramientas de dibujo, por ejemplo para ayudar en el dibujo y diseño de automóviles y otros vehículos, pero en general para el diseño asistido por ordenador de objetos tridimensionales en un entorno de dibujos bidimensionales.
Antecedentes
Cuando se dibuja en tres dimensiones (3D), la mayoría de las herramientas CAD requieren que se seleccione un plano bidimensional (2D) en particular, y las características se proyectan sobre ese plano. La edición puede realizarse en el plano seleccionado o perpendicular a él. Por ejemplo, los puntos de control de una línea pueden moverse en el plano seleccionado o perpendicular a él. Si se edita una línea curva de este modo, a menudo es necesario seleccionar diferentes vistas para visualizar completamente el efecto de un cambio.
En el campo del diseño automovilístico y del diseño náutico y aeronáutico, existe una necesidad creciente de poder generar y editar representaciones 3D de vehículos, aeronaves y similares con líneas rectas y curvas suaves, en particular curvas aerodinámicas o hidrodinámicas. Esto debe lograrse con rapidez y facilidad de uso y ofrecer un resultado con un mínimo de edición.
El uso de pantallas interactivas es cada vez más importante para muchas industrias basadas en el diseño. Normalmente, un usuario utiliza una pantalla interactiva y un cursor o lápiz óptico para acceder a herramientas en una proyección 2D de objetos 3D. A continuación, las herramientas se utilizan para crear y editar representaciones de los objetos 3D en la proyección 2D. La Fig. 1 (estado de la técnica) muestra una curva dibujada con una herramienta CAD existente. La Fig. 1A muestra al usuario una vista en perspectiva de un objeto 3D (plano 115, cubo 120) en el sistema de coordenadas 110. El sistema de coordenadas 110 se muestra con tres ejes perpendiculares X, Y y Z. La Fig. 1A muestra una curva 105 dibujada desde una vista del usuario en perspectiva comenzando y terminando aparentemente en los puntos deseados en el plano 115. La Fig. 1B muestra la misma curva desde una vista en perspectiva diferente (nótese que los objetos 3D han sido rotados, como se desprende del sistema de coordenadas 110) y muestra que el punto o puntos de inicio/fin de la curva 105 están en las posiciones previstas o no.
Existe la posibilidad de mejorar la facilidad de uso de las herramientas CAD para dibujar objetos 3D en 2D, en particular para dibujar objetos con curvas suaves, continuas y elegantes, como vehículos, aviones, barcos, etc. que tienen cualidades aerodinámicas o estilizadas.
El documento US 2012/206419 A1 (LEE JINHA [US] ET AL) 16 de agosto de 2012, se refiere a tecnologías de entrada e interacción. El documento EP 0686 281 A1 (INTERGRAPH CORP [US]) 13 de diciembre de 1995 se refiere a proporcionar datos de entrada para sistemas CAD 3D. El documento u S 9147282 B1 (COTE STEPHANE [CA] ET AL) 29 de septiembre de 2015eE.UU., se refiere a técnicas para manipular una herramienta virtual en un espacio tridimensional con un dispositivo de señalización que solo captura el movimiento en dos dimensiones. El documento WO 2018/075054 A1 (HEWLETT PACKARD DEVELOPMENT CO [US]) 26 de abril de 2018, se refiere a un "dibujo CAD [que] se utiliza para crear objetos 3D dentro de un espacio 3D" en el que "un usuario puede ejecutar un programa CAD en un dispositivo informático que recibe la entrada de un dispositivo de entrada y traslada esa entrada a una pantalla bidimensional (2D)".
Sumario de la invención
La presente invención se define en las reivindicaciones independientes. Las realizaciones preferentes se divulgan en las reivindicaciones dependientes.
Breve descripción de los dibujos
Las Fig. 1A y 1B son vistas en perspectiva de una curva dibujada en la vista en perspectiva de la Fig. 1A utilizando un procedimiento del estado de la técnica.
La Fig. 2 muestra el sistema de coordenadas de una pantalla interactiva (x, y) y el sistema de coordenadas de un objeto 3D (X, Y, Z) representado en la pantalla interactiva.
La Fig. 3 es un diagrama de flujo de alto nivel para dibujar una curva.
La Fig. 4 es una captura de pantalla de ejemplo de una curva a punto de ser dibujada en una vista en perspectiva.
La Fig. 5 es una captura de pantalla de ejemplo de una curva que se está completando en una vista en perspectiva.
La Fig. 6 es una captura de pantalla de ejemplo que muestra la curva completada en una vista en perspectiva. La Fig. 7 es una captura de pantalla de ejemplo que muestra la curva completada y sus puntos de control en una vista en perspectiva.
La Fig. 8 es una captura de pantalla de ejemplo que muestra la curva completada y sus puntos de control en una vista en perspectiva.
Las Fig. 9A y 9B son un esquema de una vista en perspectiva y en planta del trazado de una curva sobre un objeto.
La Fig. 10 es un diagrama de flujo de procedimiento que muestra el procedimiento de trazado de una curva. La Fig. 11 es un diagrama de flujo de procedimiento que muestra la subrutina de identificación de características de la Fig. 10.
La Fig. 12 es un diagrama de una curva que comprende B-splines (interpolaciones segmentarias).
Descripción detallada
La siguiente descripción incluye detalles específicos con el fin de proporcionar una comprensión de diversos conceptos, pero será evidente para los expertos en la materia que estos conceptos pueden ser practicados sin estos detalles específicos. La siguiente descripción no pretende representar las únicas configuraciones en las que se pueden poner en práctica los conceptos aquí descritos.
La Fig. 2 es un diagrama que muestra un primer sistema de coordenadas 205 con dos ejes perpendiculares, x e y, que representan las coordenadas de una pantalla 215 de un dispositivo 225. La pantalla 215 es una superficie 2D, por lo que sólo se necesitan dos coordenadas (x, y) para identificar una ubicación en la pantalla 215. El tercer eje de coordenadas, z, perpendicular a los ejes x e y del primer sistema de coordenadas 205 se representa como una línea de puntos. El primer sistema de coordenadas 205 puede denominarse sistema de coordenadas "cámara".
Un objeto 3D 220 se renderiza para su representación en 2D en una vista en perspectiva en la pantalla 215. Se muestra un segundo sistema de coordenadas 210, con tres ejes perpendiculares X, Y y Z. El segundo sistema de coordenadas 210 es un sistema de coordenadas asociado al objeto 220. Se muestra un vector 230 desde el origen del primer sistema de coordenadas hasta el origen del segundo sistema de coordenadas. Para los fines presentes, el vector se denominará (x0, y0, zü) en el primer sistema de coordenadas (pero podría referenciarse en el segundo sistema de coordenadas).
El segundo sistema de coordenadas 210 puede ser trasladado, rotado, y el nivel de zum puede ser cambiado. Así, el objeto 220 puede ser trasladado, rotado, y la vista ampliada con el fin de ver el objeto 220 desde diferentes perspectivas. Cuando se traslada, el vector (xo, yo) cambia. Al hacer zum, el vector (zo) cambia, es decir, el objeto crece o decrece dando la apariencia de acercarse al espectador (en el eje z) o alejarse de él.
El segundo sistema de coordenadas 210 se muestra rotado con respecto al primer sistema de coordenadas 205 para proporcionar una vista en perspectiva del objeto 3D. La rotación alrededor del eje X se denomina "balanceo". La rotación alrededor del eje Y se denomina "guiñada". La rotación alrededor del eje Z se denomina "cabeceo". Al girar, cambiarán los ángulos respectivos a, p, y (no mostrados) entre los ejes X y x, los ejes Y e y y los ejes Z y z. Cuando se gira en el segundo sistema de coordenadas para dar una nueva perspectiva al segundo sistema de coordenadas, el programa de renderizado realiza un nuevo cálculo para convertir cada punto del segundo sistema de coordenadas en un punto (x, y) de la pantalla (con una coordenada z en segundo plano).
Cada característica del objeto se representa como píxeles en el plano x-y de la pantalla y, a la inversa, cada píxel en el plano x-y de la pantalla corresponde a un punto en el espacio 3D en el sistema de coordenadas XYZ.
Cualquier ubicación (x, y) en la pantalla 215 tiene una pluralidad de posibles ubicaciones de profundidad a lo largo del eje z. Es necesario desambiguar la z, o "profundidad", a la que se sitúa un punto en la pantalla 215 en una vista en perspectiva para situar correctamente el punto en el segundo sistema de coordenadas 21ü (3D).
La Fig. 3 es un diagrama de flujo de alto nivel de un procedimiento 300 para dibujar una línea o curva en una pantalla 215 en un primer sistema de coordenadas 205 y determinar el posicionamiento apropiado para la línea o curva en el segundo sistema de coordenadas 210. La Fig. 3 se describirá con referencia a la curva 450 dibujada en las Fig. 4-8, la curva 930 dibujada en las Fig. 9A y 9B, y se muestra con más detalle en el diagrama de burbujas de la Fig. 10.
Las Fig. 4-8 muestran el procedimiento de dibujar una curva en una pantalla y posicionar dicha curva en el segundo sistema de coordenadas 210. Las Fig. 4-8 muestran cada una una pantalla 415 que tienen un primer sistema de coordenadas 405. Un objeto 420 es un objeto 3D representado en 2D en la pantalla 415. El primer sistema de coordenadas 405, el segundo sistema de coordenadas 410, la pantalla 415 y el objeto 420 pueden considerarse
equivalentes al primer sistema de coordenadas 205, el segundo sistema de coordenadas 210, la pantalla 215 y el objeto 220, respectivamente, descritos con referencia a la Fig. 2.
Las Fig. 4-8, muestran el objeto 420 como el chasis de un vehículo, pero puede ser cualquier otro objeto 3D. El vehículo puede ser un coche, un avión, un barco, una nave espacial o similar. El objeto puede ser un edificio, un electrodoméstico, un producto de consumo o similar. El objeto 420 está asociado a un segundo sistema de coordenadas 410. El segundo sistema de coordenadas 410 se gira, traslada y amplía para proporcionar una vista en perspectiva del objeto 3D 420, tal como se describe en referencia a la Fig. 2. Como puede apreciarse en la Fig. 4, cualquier ubicación (x, y) dada en el objeto renderizado 420, y por lo tanto en la pantalla 415, puede asociarse con múltiples ubicaciones en la dirección de profundidad, perpendicular al plano de la pantalla. Una normal, N1, 425 se identifica como perpendicular al plano de la pantalla. La normal 425 puede considerarse paralela al eje z.
Se muestra una parte de un plano de dibujo 408. Se representa como una cuadrícula de líneas azules paralelas a los ejes x e y que crean cuadrados de cuadrícula, representando un plano a una profundidad seleccionable en la dimensión z. El plano de dibujo puede estar en la profundidad de la cámara (z=0) o por debajo de la profundidad de la cámara. A medida que se profundiza en el plano de dibujo, disminuye el tamaño de los cuadrados de la cuadrícula. A medida que se acerca, aumenta el tamaño de los cuadrados de la cuadrícula. El plano de dibujo puede representarse como un plano transparente con todas las características del objeto 420 visibles a través del plano, o como un plano sólido, con las características por debajo del plano ocultas a la vista. (Para simplificar la ilustración y no abarrotar innecesariamente el diagrama, sólo se ilustra una parte del plano de dibujo)
Las Fig. 4-8 muestran el objeto 3D 420 (por ejemplo, el chasis de un vehículo) y muestra una pluralidad de curvas preexistentes 430-438 sobre y alrededor del chasis. Juntos, el objeto 3D y las curvas preexistentes representan "características" a las que se hará referencia, algunas de las curvas preexistentes pueden ser imágenes especulares de otras a través de un plano de simetría. Por ejemplo, la curva 437 es una imagen especular de la curva 436 a través de un plano de simetría paralelo a un plano definido por los ejes X-Z posicionado en el centro del objeto 420. Las curvas preexistentes 430-438 tienen ubicaciones en el espacio 3D del segundo sistema de coordenadas 410 y se representan para su visualización en el primer sistema de coordenadas 405. Las curvas preexistentes 430-438 pueden haber sido trazadas por el procedimiento aquí descrito.
El procedimiento 300 comienza en 305 con la selección de una vista en perspectiva. Un usuario puede seleccionar la vista en perspectiva como la forma más conveniente para dibujar la curva deseada. Es probable que la vista en perspectiva seleccionada permita al usuario ver los puntos inicial y final de la curva que desea dibujar. La Fig. 4 muestra una vista en perspectiva del objeto 3D 420 renderizado en 2D en la pantalla 415. Una vez establecida la vista en perspectiva, el usuario puede (opcionalmente) establecer la profundidad del plano de dibujo 408.
En 310 el usuario puede crear un punto de inicio en el primer sistema de coordenadas 405 en la pantalla 415. La pantalla 415 es una pantalla interactiva y el usuario interactúa con la pantalla utilizando un lápiz óptico 440. Al colocar la punta del lápiz 440 sobre la pantalla 415 se crea el primer punto 445.
En las etapas 315 y 320 de la Fig. 3, se traza una curva 450 desde el primer punto 445 hasta un segundo punto 455, como se muestra en la Fig. 5. La curva 450 se dibuja arrastrando la punta del lápiz 440 por la pantalla 415. La "profundidad" a la que se pretende situar el primer punto 445, el segundo punto 455 y la curva 450 es ambigua en función de sus ubicaciones en el primer sistema de coordenadas.
En un ejemplo, la colocación de una punta del lápiz óptico 440 sobre la pantalla en el primer sistema de coordenadas 405 tiene como resultado el ajuste de la profundidad del plano de dibujo 408. El ajuste se efectúa identificando una característica del objeto 420 que corresponde a la posición en la que se coloca la punta del lápiz y calculando, en el primer sistema de coordenadas, la dimensión z (profundidad) de dicha característica. A continuación, el plano de dibujo se ajusta ("encaja") a esa profundidad. La escala de la cuadrícula del plano de dibujo se ajusta en consecuencia.
La característica del objeto 420 que corresponde a la posición en la que se coloca la punta del lápiz óptico se identifica mediante técnicas de reconocimiento de imágenes. En la posición (x, y) del lápiz óptico, el software de renderizado está representando la imagen del objeto. Al examinar el contraste de escala de grises (o contraste de color), el procesamiento de reconocimiento de imágenes puede identificar que hay un contraste, como una línea o un borde u otra característica. Esta característica se representa en el segundo sistema de coordenadas porque, como ya se ha explicado, cada píxel del plano x-y de la pantalla corresponde a un punto del espacio tridimensional en el sistema de coordenadas XYZ. Cuando hay más de un elemento en esa posición (por ejemplo, porque el objeto es transparente), se selecciona el elemento situado más arriba (desde la perspectiva del observador), es decir, el elemento situado a menor profundidad en la dimensión z.
De este modo, la ubicación (x,y) de la punta del lápiz óptico 440 se hace coincidir con una primera profundidad en el primer sistema de coordenadas 405. El plano de dibujo 408 en el primer sistema de coordenadas 405, paralelo al plano de la pantalla 415, se desplaza (preferentemente) a esa profundidad.
En la etapa 325 (Fig. 3) se determina la característica más cercana al primer punto 445, como se ve desde la vista en perspectiva. Una característica puede ser una superficie o línea en el objeto 420 o una de las curvas preexistentes a 430-438. En el ejemplo ilustrado, la curva preexistente 436 se identifica como la característica sobre la que debe situarse el primer punto 445.
En la etapa 330, el primer punto 445 se fija ("encaja") en la posición de la característica identificada en el segundo sistema de coordenadas 410 y se identifica como el punto de inicio 446. De este modo, al punto inicial 446 se le asigna una posición en el sistema de coordenadas 3D del objeto 420 y se desambigua la "profundidad" del primer punto 445 en la vista en perspectiva.
En la etapa 335 se determina la característica más cercana al segundo punto 455, según se ve desde la vista en perspectiva. Una característica puede ser una superficie o línea en el objeto 420 o una de las curvas preexistentes a 430-438. En el ejemplo ilustrado, la curva preexistente 436 se identifica como la característica sobre la que debe situarse el segundo punto 455.
En la etapa 340, el segundo punto 455 se fija a la posición de la característica en el segundo sistema de coordenadas 410 y se identifica como el punto final 456. Así, al punto final 456 se le asigna una posición en el sistema de coordenadas 3D del objeto 420 y se desambigua la "profundidad" del segundo punto 455 en la vista en perspectiva. El primer punto se somete a una traslación vectorial desde la ubicación del primer punto en el sistema de coordenadas 2D hasta el punto de inicio en el sistema de coordenadas 3D (fijado/encajado a una característica existente). El segundo punto se somete igualmente a una traslación vectorial desde la ubicación del segundo punto en el sistema de coordenadas 2D hasta el punto final en el sistema de coordenadas 3D (fijado/encajado a una característica existente). Cada punto de muestra entre los puntos primero y segundo (es decir, cada ubicación en la línea trazada entre los puntos primero y segundo) se somete a una traslación vectorial que es una interpolación entre los puntos primero y segundo a lo largo de la curva. Esto forma la curva en el sistema de coordenadas 3D. En otras palabras, el primer punto se somete a una primera traslación vectorial desde el primer punto en el primer sistema de coordenadas 2D hasta el punto inicial capturado en el segundo sistema de coordenadas 3D, el segundo punto se somete a una segunda traslación vectorial desde el segundo punto en el primer sistema de coordenadas 2D hasta el punto final capturado en el segundo sistema de coordenadas 3D, la curva en el primer sistema de coordenadas 2D está representada por puntos de muestra entre los puntos primero y segundo, y traslados interpolados de los puntos de muestra desde el primer sistema de coordenadas 2D hasta el segundo sistema de coordenadas 3D, cada traslación vectorial interpolada comprende una interpolación, para el punto de muestra respectivo, entre la primera traslación vectorial y la segunda traslación vectorial. El plano en el que se encuentra la curva (en el sistema de coordenadas 3D) está definido por un vector 3D entre el punto inicial y el punto final de la curva y una línea perpendicular a ese vector 3D que es paralela al plano (el de la pantalla o un plano preestablecido - ver más adelante) en el que se dibujó la curva.
Como puede verse en las Fig. 6-8, el punto inicial 446 y el punto final 456 se han situado como coincidentes con la curva preexistente 436.
Las ubicaciones de imagen especular de los puntos y líneas también pueden crearse como primer punto especular, segundo punto especular y punto de inicio especular 447, punto final especular 457 y curva especular 451, como se muestra en las Fig. 6-8. Estos puntos especulares y la curva son generados por un plano de simetría paralelo al plano X-Z y que interseca el centro del objeto 420.
Como alternativa a fijar un punto inicial o final a una característica identificada dentro de la imagen renderizada del objeto, 420, el punto inicial puede fijarse para que comience en el plano de dibujo o el punto final puede fijarse para que esté en el plano de dibujo. Estas opciones son seleccionadas por el usuario. Así, por ejemplo, el usuario puede seleccionar (utilizando un menú, no mostrado) una opción para comenzar una línea en el plano de dibujo y terminar en una característica del objeto, o el usuario puede establecer el plano de dibujo a una profundidad de destino deseada (antes de colocar el lápiz óptico en el punto de inicio) y luego dibujar la línea desde una característica identificada por el software como punto de inicio y dibujar hasta el destino, en el que la profundidad del punto final se selecciona para ser la profundidad del plano de dibujo. Para ajustar la profundidad del plano de dibujo, se presenta al usuario una barra de desplazamiento adecuada u otro control de interfaz gráfica de usuario interactiva de ajuste de profundidad. Ajustando el control, se ve cómo el plano de dibujo sube o baja hasta la profundidad deseada. A continuación, una vez establecida, el usuario puede trazar la línea desde una característica deseada hasta un punto de ese plano de dibujo.
La Fig. 7 muestra una vista ampliada de la curva 450 y la curva especular 451. Se generan los puntos de control 460 y 465, unidos entre sí por una línea recta 470 y conectados al punto inicial 446 y al punto final 456 de la curva 450 por las líneas rectas 475 y 480. En el ejemplo, puede observarse que los puntos de control 460 y 465 no se encuentran en la curva 450 controlada por los puntos de control. Más bien representan puntos en tangentes a la curva en los puntos inicial y final de la curva, y/o puntos en líneas de conexión que unen esas tangentes. (En un ejemplo alternativo, los puntos de control son puntos intermedios de la propia curva) También debe tenerse en cuenta que el punto inicial 446 y el punto final 456 de la curva 450 son también puntos de control.
A medida que se genera la curva 450, también se crea una curva especular 451. La curva especular 451 se forma reflejando la línea 450 en un espejo virtual. Los puntos de control 460 y 465 también tienen asociados puntos de control especulares 461 y 466, unidos entre sí por una recta especular 471 y conectados al punto de inicio especular 447 y al punto final especular 457 de la curva especular 451 por las rectas 476 y 481.
Los puntos de control pueden utilizarse para manipular la curva 450 y la curva especular 451. Las curvas 450 y 451 pueden manipularse por separado o al unísono. La manipulación mediante puntos de control se describe más adelante.
La Fig. 8 muestra el objeto 420 y las curvas 450 y 451 desde una segunda vista en perspectiva. Aunque la perspectiva ha cambiado, el plano de dibujo 408 sigue siendo paralelo al plano de visión. Desde esta perspectiva, puede verse que la curva 450 que se ha dibujado se encuentra en un plano plano (aunque no tiene por qué ser necesariamente así). El plano en el que se encuentra la curva 450 está definido por un vector 3D entre el punto de inicio 446 y el punto final 456 de la curva 450 y una línea perpendicular a ese vector 3D que es paralela al plano de la pantalla (o al plano de dibujo, para los ejemplos en los que se selecciona un plano de dibujo) en el que se dibujó la curva 450. Se indica la normal, N1, 425 al plano de la curva 450. Así, la curva 450 tiene un ángulo relativo al segundo sistema de coordenadas 410. Mover los puntos de control 460 y 465 perpendicularmente al plano tiene el efecto de mover la curva 450 fuera del plano. Si los puntos de control 460 y 465 no se mueven al unísono, la curva 450 puede dejar de descansar en un plano plano.
La fijación del punto de inicio 446 o del punto final 456 a posiciones en el segundo sistema de coordenadas en las etapas 430 y 440, respectivamente, comprende la identificación de una característica de objeto que está cerca de, o interseca, una normal al plano de la pantalla 415. La característica del objeto puede ser una línea o una superficie del objeto.
Si la característica del objeto es una línea, por ejemplo la curva 436, entonces la fijación de un punto comprende preferiblemente el encaje del punto a la línea 436. Esto permite determinar la posición en el segundo sistema de coordenadas 410 del punto.
El encaje del punto final 456 de la curva 450 se ilustra en las Fig. 5 y 6. En la Fig. 5, el segundo punto 455 se crea levantando el lápiz óptico 440 de la pantalla 415. El segundo punto 455 no coincide con la curva preexistente 436, sin embargo, el segundo punto 455 se encaja en la curva preexistente 436 y se muestra como el punto final 456 en la Fig. 6.
El encaje está sujeto a ciertos criterios, y además implica un ajuste en las direcciones x y/o y en la pantalla. El ajuste en las direcciones x e y se limita a ser inferior a una distancia umbral (una tolerancia preestablecida). El umbral es el diámetro o la resolución del lápiz óptico (por ejemplo, en píxeles) multiplicado por un factor. El factor es un valor comprendido entre dos y cuatro. En un ejemplo, la resolución o el diámetro del lápiz están preestablecidos. En un ejemplo, la distancia umbral se aprende mediante entrenamiento, de forma que el ajuste tiene en cuenta tanto el diámetro del lápiz como la precisión del usuario al colocarlo.
El plano de dibujo puede ser movido automáticamente de tal manera que el punto encajado esté en el plano de dibujo.
Las características del objeto se identifican mediante un contraste entre los píxeles mostrados en la pantalla 415 en la vista en perspectiva. Las características del objeto pueden ser curvas o superficies. En un ejemplo, una línea se identifica por un límite ampliamente lineal a través del cual se produce un cambio en el contraste con los píxeles circundantes. El límite puede estar difuminado por la representación de la línea en el primer sistema de coordenadas. El lápiz óptico se identifica como colocado en la línea por cualquiera de los diámetros o la resolución del lápiz que cubra cualquier píxel de la línea. Preferiblemente, esto incluye cualquier píxel que cubra el área borrosa. Este reconocimiento de objetos por contraste de píxeles puede combinarse con el encaje descrito en el presente documento.
Como puede verse en las Fig. 4-8, cuando un objeto 3D se renderiza para su representación en 2D, cualquier superficie curva suele estar provista de sombreado graduado. Además, una primera y una segunda superficie conectadas que no se encuentran en un plano suelen representarse con un sombreado diferente en cada una de ellas. Las características pueden identificarse por el contraste de sombreado entre superficies no planas y el contraste de sombreado en superficies curvas. La identificación de rasgos de este modo permite situar los puntos inicial y/o final de las curvas en las posiciones adecuadas de las superficies.
Si no se identifica ninguna línea o contraste para fijar un primer y/o segundo punto, sino que el punto se encuentra delante de una superficie (desde la vista en perspectiva), entonces el primer y/o segundo punto se fija a la superficie. La posición de la superficie se conoce en el segundo sistema de coordenadas (3D) 410. Así, la fijación del punto a la superficie permite desambiguar la "profundidad" a la que se sitúa el primer y/o segundo punto y dar al punto una posición en el segundo sistema de coordenadas 410 (y se trata como un punto inicial o un punto final). En este caso no hay ajuste x e y del primer y/o segundo punto.
Si no se identifica ninguna línea, contraste o superficie para fijar un primer y/o segundo punto, entonces el primer y/o segundo punto se trata como si estuviera posicionado en el plano de dibujo 408 existente. Esto permite fijar el punto como una posición en el segundo sistema de coordenadas 410 utilizando el plano de dibujo para desambiguar la profundidad, y el punto se trata como un punto inicial o final.
En los ejemplos descritos con referencia a las Fig. 4-8 (y como se ha descrito anteriormente), el plano de dibujo es un plano paralelo al plano de la pantalla 415 en el que se dibujan las curvas. En otras palabras, el plano de dibujo es paralelo al plano x-y del primer sistema de coordenadas. El plano de dibujo 408 es visto por el usuario como una cuadrícula compuesta por cuadrados. El tamaño de la cuadrícula cambia a medida que el plano de dibujo se desplaza a través de la vista en perspectiva presentada al usuario. Si el plano de dibujo se acerca al usuario (es decir, hacia el usuario en la vista en perspectiva seleccionada), los cuadrados de la cuadrícula aumentan de tamaño. Por el contrario, si el plano de dibujo se aleja del usuario (es decir, se aleja del usuario en la vista en perspectiva seleccionada), los cuadrados de la cuadrícula disminuyen de tamaño. De este modo, el plano de dibujo sirve para indicar a qué profundidad de la vista en perspectiva se colocará un primer y/o segundo punto recién posicionado. La cuadrícula del plano de dibujo no se muestra en las Fig. 4-8 por razones de claridad.
La Fig. 9A muestra un segundo ejemplo de trazado de una curva en una vista en perspectiva. Similar a las Fig. 4-8, en la Fig. 9A un objeto 3D 920 se representa en 2D en una pantalla. La pantalla tiene asociado un primer sistema de coordenadas 905, y el objeto 920 tiene asociado un segundo sistema de coordenadas 910. Como en el caso anterior, el primer sistema de coordenadas 905 es 2D y la profundidad (o coordenada z) de cualquier punto situado en el primer sistema de coordenadas 905 es ambigua. La profundidad de un punto situado en el primer sistema de coordenadas 905 debe desambiguarse para determinar una posición para el punto en el segundo sistema de coordenadas 3D 910.
En la Fig. 9A, una curva 930 ha sido dibujada desde un primer punto 925 hasta un segundo punto 935 en la vista en perspectiva. Como en las Fig. 4-8, el primer punto, la curva y el segundo punto se dibujan colocando, arrastrando y levantando un lápiz óptico de la pantalla.
La Fig. 9B muestra el objeto 920 en una vista en planta. Para simplificar, el eje Z del segundo sistema de coordenadas es paralelo a la pantalla. El objeto se ve desde a lo largo del eje Z del primer sistema de coordenadas 910 y la pantalla se muestra como una línea 955. Una ubicación de visualización 940 se indica como la ubicación desde la que se ve la vista en perspectiva de la Fig. 9A. Las líneas de visión 945 y 950 intersecan el primer punto 925 y el segundo punto 935, respectivamente. Las líneas de visión 945 y 950 se indican sólo a título ilustrativo. La Fig. 9b muestra además la curva 930, dibujada en la vista en perspectiva de la Fig. 9A, antes de que se hayan fijado sus puntos inicial y final.
La Fig. 9B muestra el efecto de la etapa de procedimiento 310 en el que un plano de dibujo 908 se ajusta basándose en la colocación del lápiz óptico en la pantalla. En esta etapa, el plano de dibujo 908 se mueve de un primer plano 955 a un segundo plano 956 en respuesta a la punta del lápiz óptico que se coloca en la pantalla en 927. Tanto el plano 955 como el plano 956 son paralelos a la pantalla y, por tanto, también paralelos a un plano formado por los ejes x-y del primer sistema de coordenadas 905. Cuando el lápiz óptico se coloca por primera vez en la pantalla, se sitúa efectivamente en el punto 927, que está en el espacio libre. Se reconoce que, desde la vista en perspectiva del usuario, la ubicación prevista del primer punto se encuentra en el punto 925, porque se trata de una característica del objeto 920 que se encuentra en la ubicación x-y del lápiz óptico en la vista en perspectiva. Esto permite desambiguar la coordenada z o "profundidad" como se ha descrito anteriormente. El primer punto 925 se fija en un lugar del segundo sistema de coordenadas 910 como punto inicial 926.
Reconocer la ubicación prevista del primer punto como una característica del objeto permite ajustar el plano de dibujo. El plano de dibujo se ajusta de forma que el punto de inicio 926 se encuentre en el segundo plano 956. El plano de dibujo permanece paralelo a la pantalla y a un plano formado por los ejes x-y del primer sistema de coordenadas 905.
En un ejemplo, el ajuste del plano de dibujo al plano 956 se ejecuta tan pronto como el lápiz óptico se sitúa en el punto 927. La curva 930 se dibuja entonces en el plano de dibujo ajustado 956. El segundo punto 935 también está situado en el plano de dibujo ajustado.
En un ejemplo, el segundo punto 935 puede permanecer en el plano de dibujo ajustado 956. Por ejemplo, puede seleccionarse para hacerlo, o puede no haber ninguna ubicación en el objeto 920 identificada a la que fijar el segundo punto 935. En este caso, la profundidad del segundo punto 935 se desambigua utilizando el plano de dibujo ajustado 956 para fijar el segundo punto 935 a una ubicación en el segundo sistema de coordenadas 910 como punto final de la curva 930.
En un ejemplo, el segundo punto 935 puede no permanecer en el plano de dibujo ajustado 956. Como se muestra en las Fig. 9a y 9B, el segundo punto 935 se identifica como coincidente con una característica del objeto (en este caso, una línea que forma el objeto 920) en la vista en perspectiva de la Fig. 9A. La profundidad a la que se pretende dibujar el segundo punto 935 se desambigua fijando la posición del punto final 936 en esta característica del objeto. La fijación se realiza como se describe en las Fig. 4-8 y da como resultado la curva 931. En este caso, la
curva 931 se sitúa en un plano definido por el punto inicial 926 y el punto final 936, y es paralela al eje Z del segundo sistema de coordenadas 910. (En la vista en perspectiva de la Fig. 9A, el eje Z es paralelo a la pantalla y al plano definido por los ejes x-y del primer sistema de coordenadas 905). El plano en el que se encuentra la curva 931 está definido por un vector 3D entre el punto inicial 926 y el punto final 936 de la curva 931 y una línea perpendicular a dicho vector 3D que es paralela al plano de la pantalla (o al plano de dibujo, para ejemplos en los que se selecciona un plano de dibujo) en el que se dibujó la curva 930.
Plano de dibujo fijo
En los ejemplos descritos con referencia a las Fig. 4-9, el plano en el que se crea una curva está definido total o parcialmente por la vista en perspectiva establecida por el usuario cuando el primer punto, la curva y el segundo punto están situados en la pantalla. La vista en perspectiva se ha establecido por traslación y rotación del segundo sistema de coordenadas 210, 410, 910 con respecto al primer sistema de coordenadas 205, 405, 905.
Opcionalmente, la ubicación y el ángulo del plano de dibujo 408 pueden establecerse manualmente antes de la creación del primer punto. La ubicación y el ángulo del plano de dibujo se establecen moviendo el plano de dibujo a través y/o alrededor de un objeto existente hasta la ubicación deseada y girando el plano hasta la orientación deseada. Alternativa o adicionalmente, el objeto puede ser movido (arrastrado) a través y rotado en relación al plano de dibujo.
Una vez fijado el plano de dibujo, se modifica la vista en perspectiva antes de dibujar una curva. De este modo, se puede dibujar una curva en un plano de dibujo seleccionado desde cualquier vista en perspectiva. Esto es útil para dibujar una curva por el lateral de un objeto que se ve principalmente de frente, en este ejemplo el plano de dibujo puede establecerse a lo largo del lateral del objeto y una vista en perspectiva, en la que dibujar la curva, puede establecerse en una perspectiva que muestre la parte frontal y lateral parcialmente.
La curva se dibuja en el plano de dibujo establecido colocando la punta del lápiz óptico en la pantalla para crear un primer punto, arrastrando el lápiz por la pantalla para crear una curva y levantando el lápiz para crear un segundo punto. La profundidad a la que se encuentran el primer punto, el segundo punto y la curva se puede desambiguar simplemente sabiendo que se encuentran en el plano de dibujo del conjunto, y la posición en el segundo sistema de coordenadas del punto inicial y el punto final es fija.
En este ejemplo puede utilizarse el reconocimiento de características. Si el punto inicial y/o final está próximo a una característica del objeto (una línea del objeto o una superficie del objeto) en una dirección perpendicular al plano de dibujo establecido, entonces el plano de dibujo que contiene el punto inicial, la curva y el punto final puede moverse de forma que el punto inicial y/o final coincida con la característica del objeto.
Si el plano de dibujo fijado se desplaza de modo que uno de los puntos inicial o final coincide con la característica del objeto, entonces el plano de dibujo se traslada en una dirección perpendicular a su plano y el plano desplazado es paralelo al plano fijado.
Si el plano de dibujo establecido se mueve de manera que tanto el punto inicial como el final coinciden con la(s) característica(s) del objeto, entonces el plano de dibujo puede tanto trasladarse en una dirección perpendicular a su plano como rotar. El plano desplazado ya no es paralelo al plano fijado.
Adicional o alternativamente, el punto inicial y/o final también puede ser encajado en una característica que coincida con el plano como se describe con referencia a las Fig. 4-8.
Diagrama de flujo global del procedimiento
La Fig. 10 es un diagrama de flujo global del procedimiento 1000. El flujo de procedimiento 1000 es una versión más detallada del procedimiento 300. La Fig. 10 se describirá con referencia a las Fig. 4-8, pero podrían describirse igualmente con referencia a las Fig. 2 y 9.
El flujo de procedimiento 1000 comienza en 1005 mediante la selección de una vista en perspectiva de un objeto en una pantalla, por ejemplo el objeto 3D 420 en la pantalla 415 descrito con referencia a las Fig. 4-8. La vista en perspectiva también se selecciona en 1015 mediante movimientos de cabeceo, balanceo y guiñada (rotaciones) del segundo eje de coordenadas 410 con respecto al primer eje de coordenadas 405. La normal, N, 425 se recalcula en 1020 tras un cambio en la vista en perspectiva por rotación en 1015. En un ejemplo, el plano de dibujo se fija manualmente en 1025. Cuando se selecciona la vista en perspectiva, la posición del objeto en esa vista puede ajustarse en el procedimiento 1010 para mover el objeto en las direcciones x e y y acercándolo y alejándolo. Se puede volver al procedimiento 1015 y reajustar la vista en perspectiva, etc.
Tras la selección de la vista en perspectiva en 1005 y la posición del objeto en dicha vista, el flujo del procedimiento continúa en 1030 cuando la punta del lápiz óptico 440 se coloca en la pantalla 415. En 1035, la ubicación en la pantalla 415 en la que se coloca la punta del lápiz 440 se registra como el primer punto 445 con coordenadasx1,y1 en el primer sistema de coordenadas 405 (2D). La identificación de características se ejecuta en 1040. La identificación de características 1040 se describirá con más detalle en referencia a la Fig. 11. La identificación de la característica
en 1040 hace que el primer punto 445 se fije en un punto de inicio 446. El flujo del procedimiento vuelve a 1030 para el siguiente movimiento del lápiz óptico. Al colocar el lápiz 440 en la pantalla 415 en 1030, la ubicación del plano de dibujo puede ajustarse (procedimiento 1045) de manera que el plano de dibujo coincida con cualquier característica identificada en la identificación de características 1040.
En 1050 el lápiz óptico 440 es arrastrado a través de la pantalla 415, las posiciones x e y del lápiz 440 son recogidas, como xi, yi, en 1055. Las posiciones xi, yi forman la curva 450 en la pantalla 415.
En 1060 el lápiz óptico se levanta de la pantalla 415 y se crea el segundo punto 455 en 1065. La identificación de la característica final puede ejecutarse en 1070. La identificación de rasgos 1070 es equivalente a la identificación de rasgos 1040 y se describirá con más detalle en referencia a la Fig. 11. La identificación de la característica en 1070 hace que el segundo punto 445 se fije en un punto final 446. El flujo del procedimiento vuelve a 1060 (o pasa a 1075).
A continuación, en 1075, se generan los puntos de control 460 y 465, y las líneas rectas 470, 475 y 480.
Se apreciará que una curva especular que comprende el primer punto especular, punto de inicio, segundo punto, punto final, puntos de control, y líneas rectas puede ser generada junto con la curva respectiva, primer punto, punto de inicio, segundo punto, punto final, puntos de control, y líneas rectas en las etapas 1030-1075.
A partir de 1075 el procedimiento puede volver a 1005 para que el usuario seleccione una nueva vista en perspectiva. Puede seleccionarse una nueva vista en perspectiva y el flujo puede continuar hasta 1080, donde los puntos de control pueden modificarse para cambiar la forma, la posición inicial y/o la posición final de la curva. Alternativamente, desde 1075, el flujo del procedimiento continúa hasta 1080 donde se modifican los puntos de control. El flujo del procedimiento puede entonces volver a 1005 donde se puede seleccionar una nueva vista en perspectiva.
La Fig. 11 es un diagrama de flujo de procedimiento 1100 que comprende las etapas de identificación de características. El flujo de procedimiento 1100 es una versión más detallada de la identificación de características 1040 y 1070 de la Fig. 10.
La Fig. 11 se describirá con referencia al primer punto 445 de las Fig. 4-8 pero podría describirse igualmente con referencia al segundo punto 455 de las Fig. 4-8 o con referencia a las Fig. 2 y 9.
El flujo de procedimiento 1100 comienza en 1105. Si, en 1105, se identifica una característica del objeto 3D que se encuentra en la proximidad de la ubicación x,y del primer punto, entonces el flujo de procedimiento 1100 continúa en 1110. Una característica está en la proximidad de la ubicación x,y si la distancia entre la característica y la ubicación x,y es menor que un umbral. El umbral es un múltiplo, m, de la resolución (o diámetro) del lápiz óptico. El múltiplo, m, puede ser 5.
En 1110 se determina la identidad de la característica. Si la característica es una curva 436, el procedimiento continúa en 1115. Si en 1120 se determina que el primer punto 445 está en la curva 436, en 1125 se desambigua la profundidad utilizando la posición de la curva 436 en el segundo sistema de coordenadas 410. Esto permite, en 1130, que la ubicación x,y del primer punto 445 en la pantalla 415 en el primer sistema de coordenadas 401 se capture a una posición X,Y,Z en el segundo sistema de coordenadas 410, y se identifique como el punto de inicio 446. A partir de 1130 el flujo del procedimiento vuelve a 1105 y continúa en el flujo del procedimiento 1000 de la Fig. 10 como se ha descrito anteriormente.
Si en la etapa 1120 se determina que el primer punto 445 no está en la curva identificada 436, el flujo del procedimiento procede a 1135. En 1135, si se cumplen los criterios para encajar el primer punto 445 a la curva 436, el flujo continúa hasta 1140, donde el primer punto 445 se encaja en la curva 436. El flujo del procedimiento continúa hasta 1125 como se ha descrito anteriormente.
En 1135, si no se cumplen los criterios para encajar el primer punto 445 a la curva 436, el procedimiento continúa en 1150 y la característica se identifica como una superficie. La posición de la superficie se utiliza para desambiguar la profundidad del primer punto y el flujo del procedimiento continúa hasta 1125 como se ha descrito anteriormente. Alternativamente, en 1110 la característica puede ser identificada directamente como una superficie, en cuyo caso el flujo de procedimiento 1100 procede al paso directo 1150.
Refiriéndonos de nuevo a 1105, si no se identifica ninguna característica relacionada con el primer punto 445 entonces el flujo del procedimiento procede al paso 1155. En 1160 se captura la posición X,Y,Z en el segundo sistema de coordenadas 410 basándose en el plano de dibujo existente. A partir de 1160 el flujo del procedimiento vuelve a 1105 y continúa en el flujo del procedimiento 1000 de la Fig. 10 como se ha descrito anteriormente.
Continuando con referencia a 1105, si un plano de dibujo ha sido manualmente establecido, o fijado, antes de la creación del primer punto, entonces el flujo del procedimiento procede a 1165. En 1170, la ubicación x,y del primer
punto en el primer sistema de coordenadas 405 se fija a un punto de inicio en una posición X,Y,Z en el segundo sistema de coordenadas 410. La profundidad se desambigua sabiendo que el primer punto se encuentra en el plano de dibujo fijo. A partir de 1170 el flujo del procedimiento vuelve a 1105 y continúa en el flujo del procedimiento 1000 de la Fig. 10 como se ha descrito anteriormente.
Opcionalmente, en 1170 el flujo del procedimiento continúa a 1175 si el punto de inicio (o punto final) se identifica como próximo a una característica del objeto en una dirección perpendicular al plano de dibujo establecido, entonces en 1180 el plano de dibujo se mueve de tal manera que el punto de inicio (y/o punto final) coincide con la característica del objeto. El procedimiento vuelve a 1170 donde la posición del punto de inicio (y/o punto final) se actualiza basándose en el plano de dibujo movido. A partir de 1170 el flujo del procedimiento vuelve a 1105 y continúa en el flujo del procedimiento 1000 de la Fig. 10 como se ha descrito anteriormente.
En los ejemplos anteriores, la pantalla se describe como una pantalla táctil con la que se interactúa utilizando un lápiz óptico. Un usuario puede interactuar con la pantalla táctil colocando un dedo sobre ella. Opcionalmente, se utiliza un cursor, ratón o puntero para interactuar con la pantalla. En estos últimos casos, la pantalla no tiene por qué ser táctil, sino que puede ser la de un ordenador o similar.
Puntos de control, splines y ajuste de curvas
El punto inicial 446 y el punto final 456 de una curva 450 pueden considerarse puntos de control. En la etapa 1080 del flujo de procedimiento 1000, los puntos de control y las curvas pueden manipularse, y las curvas y splines ajustarse como se describe en la solicitud de patente en tramitación PCT/EP2018/083618.
Los puntos de control 446, 456, 460 y 465 de la curva 450 se seleccionan posicionando el lápiz óptico 440 sobre un punto de control en la vista en perspectiva. La forma y la longitud de la curva 450 pueden modificarse posteriormente.
Como un punto de control, por ejemplo el punto de control 460, es seleccionado y movido a través del espacio usando el lápiz óptico 440, la forma y longitud de la curva 450 cambia dependiendo de la nueva colocación del punto de control.
El punto de control especular, por ejemplo el punto de control 461 de la curva especular 451, se mueve simultáneamente a través del espacio de la misma manera y la forma y longitud de la línea especular 451 también cambia en consecuencia. Las rectas de conexión 470, 475 y 480 y sus correspondientes rectas especulares 471, 476 y 481 también se mueven en consecuencia. El punto inicial 446 y el punto final 456 de la curva 450 no se mueven cuando se mueve el punto de control 461, ni tampoco lo hacen los correspondientes punto inicial 447 y punto final 457 de la curva especular 451.
Si se selecciona una curva (spline) o un punto de control, también se selecciona la curva (spline) o punto de control especular. Un usuario puede editar una spline seleccionada. El usuario puede utilizar el lápiz óptico para seleccionar el punto de control colocando el lápiz óptico sobre el punto de control. Al arrastrar el lápiz óptico por la pantalla, el punto de control es arrastrado en una trayectoria que coincide con los movimientos del lápiz.
A medida que se mueve el punto de control, la spline se recalcula para mostrar el efecto de los movimientos. Las líneas que conectan el punto de control seleccionado con otros puntos de control y/o puntos finales de línea también se desplazan en consecuencia. La versión especular de la spline también se actualiza en consecuencia. Si el usuario está editando utilizando un plano de dibujo preestablecido en 2D, el punto de control se bloqueará en el plano de dibujo seleccionado. Si el usuario dibuja en 3D, el punto de control puede moverse a cualquier posición, pero para ello debe seleccionar una vista en perspectiva adecuada, ya que el punto de control sólo puede moverse en un plano paralelo al plano de visión, es decir, en las dimensiones x e y del primer sistema de coordenadas.
Después de seleccionar una spline, el usuario puede decidir mover toda la spline seleccionada, en lugar de sólo un punto de control.
Después de seleccionar una spline, el usuario puede decidir conectarla o engancharla a una segunda spline. El extremo más cercano de la primera spline se engancha en el punto más cercano de la segunda spline. La forma, posición y puntos de control de la segunda spline permanecen inalterados, por lo que actúa como spline padre en la nueva configuración. Se recalcula el aspecto de la primera spline y sus dependencias, ya que se ha movido uno de sus puntos de control. Actúa como una spline hija en la nueva configuración y puede moverse a lo largo de la spline padre sin afectar a la forma, posición o puntos de control de la spline padre.
Después de seleccionar una spline, el usuario puede decidir unir la spline seleccionada a una segunda spline. El usuario mueve el lápiz óptico para alinearlo con una segunda spline y puede utilizar un gatillo, para elegir esta segunda spline a la que unir la primera spline. El usuario acciona el gatillo y la primera estría se acopla a la segunda. El extremo más cercano de la primera spline se conecta al punto más cercano de la segunda spline. Si el punto más cercano de la segunda spline está en uno de sus extremos, las dos splines comparten el mismo punto de control en sus extremos. Si el punto más cercano de la segunda spline se encuentra en algún punto de su longitud, la segunda spline se divide en ese punto en dos nuevas splines. Estas dos nuevas splines, junto con la primera spline,
comparten el mismo punto de control en sus extremos. Se recalcula el aspecto de la primera spline y sus dependencias, ya que se ha movido uno de sus puntos de control.
Después de seleccionar una spline, el usuario puede añadir un punto de control. El usuario utiliza una opción del menú "añadir punto de control" y elige un punto en el que añadir un punto de control. Se añade un nuevo punto de control a la spline en el punto de la spline más cercano al punto elegido por el usuario. La forma de la spline no se ve afectada. Cuando se añade un punto de control, los puntos de control existentes pueden desplazarse de acuerdo con el algoritmo de ajuste de curvas, para conservar la forma de la curva a pesar de que tenga un punto de control adicional (porque, por ejemplo, la minimización de la suma de cuadrados da como resultado una solución diferente cuando hay un punto de control adicional). El usuario puede entonces mover y editar la spline como antes.
Refiriéndonos ahora a la Fig. 12, se muestra un ejemplo de una línea representada como B-splines. Las curvas 450 y 451 de la Fig. se componen de B-splines de la misma forma que la curva de la Fig. 12. En este caso, la línea comprende tres curvas componentes (splines) 801, 802 y 803. Las curvas de los componentes se unen en las posiciones ("nudos") indicadas con líneas discontinuas, pero éstas no tienen ninguna importancia para el usuario del sistema. Los extremos de las curvas de los componentes y las líneas discontinuas no son visibles. Se muestran aquí sólo a título explicativo. Cada curva componente tiene las mismas propiedades de continuidad que su curva componente contigua (por ejemplo, el mismo gradiente en cada una de las dos dimensiones, es decir, en el plano de la imagen tal como se muestra y en un plano perpendicular tangente a la línea en el nudo de unión). Por lo tanto, las splines adyacentes se unen entre sí en el nudo, que es donde el gradiente de una spline coincide con el gradiente de la spline adyacente. Se trata de una restricción de la función de curva componente.
Cada curva está definida por una función polinómica. Por ejemplo, la curva 805 puede ser un polinomio de segundo o tercer orden. La curva 803 también puede ser una porción de un polinomio de segundo o tercer orden. La curva 804 puede ser un polinomio de tercer orden (o puede ser un polinomio de segundo orden sujeto a una restricción de curvatura en el extremo donde colinda con la curva 803). Cada curva componente puede comprender subcomponentes (splines), en cuyo caso, cada subcomponente puede ser un polinomio de orden inferior.
Los puntos de control se muestrean a partir de la entrada del usuario en tiempo real, de modo que el número de puntos de muestreo es proporcional (dentro de los límites superior e inferior) a la longitud de la spline resultante (o, más particularmente, proporcional al tiempo que tarda el usuario en dibujar la línea). Una línea trazada lentamente recibirá más puntos de control que una línea trazada rápidamente, hasta el número máximo de puntos de control (por ejemplo, 6).
Cada inflexión hace que se añada un punto de control adicional, sujeto al mismo máximo. (Es decir, una línea trazada rápidamente con una inflexión tendrá un punto de control más que una línea trazada en el mismo tiempo pero sin inflexiones)
Los nudos no están limitados a un espaciado uniforme a lo largo de la línea.
La segunda derivada de una B-spline de segundo orden no necesita ser continua en los nudos.
La curva se "ajusta" o se "ajusta a" un polígono (un polígono abierto) que comprende las líneas rectas 810, 812, 813 y 814. Las secciones finales del polígono (líneas 814 y 810) tienen el mismo gradiente que la línea en los respectivos puntos finales. La función de ajuste es preferiblemente una función de ajuste de mínimo cuadrático medio, como se explicará.
Además de los puntos de control finales 801 y 802, la curva tiene puntos de control intermedios 820, 821, 822 y 823 en las esquinas del polígono (las intersecciones entre rectas).
En el presente sistema, una línea está provista preferentemente de 2 ó 3 puntos de control medio. Un número reducido de puntos de control contribuye a una edición sencilla y eficaz de curvas suaves y elegantes, pero las líneas pueden estar provistas de hasta 5 ó 6 puntos de control (es decir, uno en cada extremo y hasta 3 ó 4 en el centro). El número es preferiblemente una opción de diseño del sistema, pero podría presentarse al usuario como una opción de usuario.
En el ejemplo ilustrado, se produce una inflexión en la curva, es decir, una inversión de la pendiente a medida que la curva fluye de la sección 803 a la sección 804. Por esta razón, en el ejemplo 2D de la Fig. 8, la línea 813 cruza la curva (y la línea 812 vuelve a cruzarla). (Cabe señalar, por supuesto, que cuando la línea de la Fig. 8 es una línea 3D, es posible que la apariencia de una inflexión sea una mera ilusión y que no haya inflexiones ni "cruce" de la curva por los lados del polígono) Las inflexiones reflejan la posición de los puntos de control. Si se desplaza un punto de control, puede producirse una nueva inflexión.
De acuerdo con la función de ajuste, las líneas rectas del polígono y sus puntos de control se seleccionan de tal forma que la suma, para todas las secciones incrementales de la línea, de las distancias entre un punto de la línea y un punto correspondiente del polígono, se minimiza sobre una base cuadrática media.
Por ejemplo, para una función spline de grado k, la función de ajuste busca minimizar:
donde W(x) es un peso e y(x) es el valor del dato en x. Los coeficientes ai son los parámetros que hay que determinar. Los valores de los nudos pueden ser fijos o también pueden tratarse como parámetros.
La ecuación anterior mide la distancia al cuadrado entre un punto de muestra y su correspondiente punto de curva. La función de error mide la acumulación total de distancias al cuadrado. Los puntos de control se seleccionan recursivamente para que este error sea lo más pequeño posible. El número de puntos de muestreo puede seleccionarse en función de la capacidad de cálculo y de la velocidad de cálculo deseada, pero no es necesario que sea elevado (por ejemplo, 100 - 1000 puntos de muestreo son típicos).
El orden de la función spline (que puede ser de segundo orden pero preferiblemente no superior al tercero) y el número de puntos de control se limitan para permitir que los cálculos converjan en una única solución.
Como el polígono se ajusta a la línea, también la línea se ajusta al polígono. Esto significa que, una vez seleccionados los puntos de control, pueden desplazarse y la función de ajuste define una nueva línea para ajustarse al nuevo polígono.
Es una gran ventaja de la disposición descrita que la línea tenga una función suavemente curva, lo que es particularmente importante en el diseño de vehículos, porque la función suavemente curva tendrá buenas propiedades aerodinámicas.
Cuando se unen dos líneas, no se suavizan sus funciones en la unión. Cuando un primer punto de control (que puede ser un punto final) se encuentra con un segundo punto de control (que puede ser un punto final de una línea especular del primer punto de control), las dos líneas asociadas se fusionan en una única línea. Esto puede ser automático, en cuyo caso las líneas se comportan como si una se pegara a la otra, o puede ser dirigido por el usuario mediante la activación de un botón "unir".
Cuando se unen dos líneas, conservan su condición de dos líneas. No pueden manipularse juntas, salvo en el caso muy especial de que las dos líneas sean en realidad una línea y su reflejo en el espejo. En este caso, los dos se mueven juntos sólo porque uno se mueve y hará que su reflejo coincida con sus movimientos.
En los casos en que dos líneas se unen sin ser especulares la una de la otra, el desplazamiento de un punto de control no desplaza "toda la línea". Se puede seleccionar toda la línea y moverla (trasladarla, girarla o ambas cosas). La invención no se limita necesariamente a formas definidas por funciones spline. El sistema y los procedimientos descritos pueden utilizarse con formas definidas por otras funciones. Por ejemplo, se puede dibujar un círculo (por ejemplo, parte de una rueda o una rueda entera) en el segundo sistema de coordenadas dibujando libremente un círculo o dibujando un radio (o un radio) y haciendo que la herramienta muestre un círculo/rueda de ese radio.
En el caso de una rueda, puede ser presentada con radio y grosor y con puntos de control para cada uno, donde el usuario puede seleccionar un punto de control de radio y arrastrarlo hacia dentro o hacia fuera para reducir o expandir el radio (con el movimiento del punto de control restringido a lo largo de un lugar radial) o el usuario puede seleccionar un punto de control de anchura y expandir o reducir la anchura de la rueda (con el movimiento del punto de control restringido a lo largo de un lugar axial).
Los círculos y las ruedas pueden tener las mismas funciones de selección, fijación, división y edición que se han descrito anteriormente para las líneas. En el caso de la división, por ejemplo, puede proporcionarse una función para dividir un círculo o una rueda en sectores que conserven su vínculo con el centro del círculo original.
De forma similar, un marco de caja puede dibujarse como una unidad con puntos de control para expandir o reducir en tres dimensiones y con la capacidad de unir otras líneas al marco de caja. En el caso de unir un punto de control de una línea a un punto de control de un marco de caja, el movimiento de ese punto de control hará que la línea cambie de forma y que el marco cambie de tamaño, pero el marco mantendrá su forma de caja.
La herramienta proporciona funciones específicas para splines (dibujar una línea de forma libre, adaptarla a la curva, editar puntos de control) y funciones más genéricas que las splines (unir una parte de un modelo a otra, reflejar, crear superficies entre bordes, etc.).
Se puede seleccionar un bucle cerrado de splines, por ejemplo cuatro splines. El usuario puede entonces proceder con las cuatro splines seleccionadas. Se puede crear una superficie utilizando las cuatro splines seleccionadas (u otro número de splines que formen un bucle cerrado), utilizando las splines conectadas como perímetro. La superficie aparece como un parche de material liso y contorneado, definido por el bucle continuo de splines que forman su perímetro.
Se ha descrito un procedimiento y una herramienta de dibujo con referencia a ejemplos de funcionamiento y ejemplos de líneas y objetos que se dibujan, pero los expertos en la materia entenderán que se trata de ejemplos no limitativos y que se pueden realizar modificaciones del aparato, el procedimiento y los usos sin apartarse de la invención.
Claims (11)
1. Un procedimiento (300) para dibujar una curva a mano alzada (450, 931) en una pantalla interactiva 2D (215, 415) en un primer sistema de coordenadas (205, 405, 905), en el que se utiliza un puntero (440) para interactuar con la pantalla (215, 415), representándose la curva (450, 931) en el espacio 3D en un segundo sistema de coordenadas 3D (210, 410, 910), con una tercera dimensión, que requiere ser determinada, en el que la curva (450, 931) se dibuja en un plano de dibujo 2D (408, 908) situado dentro del segundo sistema de coordenadas 3d (210, 410, 910), y en el que el plano de dibujo (408, 908) es paralelo al plano de la pantalla interactiva (215, 415), en el que la pantalla interactiva (215, 415) es paralela al plano x-y del primer sistema de coordenadas (205, 405, 905), comprendiendo el procedimiento:
seleccionar (305), para su representación en la pantalla interactiva (215, 415), una vista en perspectiva de un objeto de dibujo 3D (220, 420, 920), comprendiendo el objeto de dibujo características (220, 420, 430, 436, 920), en el que la orientación del plano de dibujo (408, 908) se determina seleccionando la vista en perspectiva;
crear (310) un primer punto (445, 925) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
capturar (310, 325, 330) el primer punto (445, 925) en el segundo sistema de coordenadas 3D (210, 410, 910) como punto de inicio (446, 926) para una curva (450, 931) que se dibuja en el plano de dibujo (408, 908), en el que la captura del primer punto (445, 925) como punto de inicio (446. 926) comprende fijar el primer punto (445, 925) en una posición que coincide con una característica (436, 920) del objeto de dibujo que está más cerca del primer punto (445, 925) en el plano de dibujo (408, 908), en el que la característica es un borde, una superficie o una línea del objeto de dibujo, en el que la característica (436, 920) del objeto de dibujo que es más cercana al primer punto es de posición conocida en el segundo sistema de coordenadas 3D (210, 410, 910), por lo que la fijación hace que las coordenadas del punto de inicio (446, 926) se determinen en el segundo sistema de coordenadas 3D, y en el que el plano de dibujo (408, 908) se ajusta para que se encuentre a la profundidad de la característica (436, 920) del objeto de dibujo (220, 420, 920) más cercana al primer punto (445, 925) en la vista en perspectiva seleccionada;
crear (320) un segundo punto (455, 935) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
capturar (320, 335, 340) el segundo punto (455, 935) en el segundo sistema de coordenadas 3D, (210, 410, 910) como un punto final (456, 936) para la curva (450, 931), en el que la captura del segundo punto (455, 935) como punto final (456, 936) comprende fijar el segundo punto (455, 935) en una posición que coincida con una característica (436, 920) del objeto de dibujo (220, 420, 920) que esté más próxima al segundo punto (455, 935) en la vista en perspectiva seleccionada, en el que la característica es un borde, una superficie o una línea del objeto de dibujo, en el que la característica (436, 920) del objeto de dibujo más cercana al segundo punto es de posición conocida en el segundo sistema de coordenadas 3D (210, 410, 910), por lo que la fijación hace que las coordenadas del punto final (456, 936) se determinen en el segundo sistema de coordenadas 3D.
2. Un procedimiento (300) para dibujar una curva a mano alzada (450, 931) en una pantalla interactiva 2D (215, 415) en un primer sistema de coordenadas (205, 405, 905), en el que se utiliza un puntero (440) para interactuar con la pantalla (215, 415), representándose la curva (450, 931) en el espacio 3D en un segundo sistema de coordenadas 3D (210, 410, 910), con una tercera dimensión, que requiere ser determinada, en el que la curva (450, 931) se dibuja en un plano de dibujo 2D (408, 908) situado dentro del segundo sistema de coordenadas 3d (210, 410, 910), y en el que el plano de dibujo (408, 908) es paralelo al plano de la pantalla interactiva (215, 415), en el que la pantalla interactiva (215, 415) es paralela al plano x-y del primer sistema de coordenadas (205, 405, 905), comprendiendo el procedimiento:
seleccionar (305), para su representación en la pantalla interactiva (215, 415), una vista en perspectiva de un objeto de dibujo 3D (220, 420, 920), comprendiendo el objeto de dibujo características (220, 420, 430, 436, 920), en el que la orientación del plano de dibujo (408, 908) se determina seleccionando la vista en perspectiva;
crear (310) un primer punto (445, 925) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
capturar (310, 325, 330) el primer punto (445, 925) en el segundo sistema de coordenadas 3D (210, 410, 910) como punto de inicio (446, 926) para una curva (450, 931) que se dibuja en el plano de dibujo (408, 908), en el que la captura del primer punto (445, 925) como punto de inicio (446. 926) comprende fijar el primer punto (445, 925) en una posición que coincide con una característica (436, 920) del objeto de dibujo que está más cerca del primer punto (445, 925) en la vista en perspectiva seleccionada, en el que la característica es un borde, una superficie o una línea del objeto de dibujo, en el que la característica (436, 920) del objeto de dibujo más cercana al primer punto es de posición conocida en el segundo sistema de coordenadas 3D (210, 410, 910), por lo que la fijación hace que las coordenadas del punto de inicio (446, 926) se determinen en la vista en perspectiva seleccionada, 926) en el segundo sistema de coordenadas 3D, y en el que el plano de dibujo (408, 908) se ajusta para que se encuentre a la profundidad de la
característica (436, 920) del objeto de dibujo (220, 420, 920) más cercana al primer punto (445, 925) en la vista en perspectiva seleccionada;
crear (320) un segundo punto (455, 935) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
capturar (320, 335, 340) el segundo punto (455, 935) en el segundo sistema de coordenadas 3D (210, 410, 910) como un punto final (456, 936) para la curva (450, 931), en el que la captura del segundo punto (455, 935) como el punto final (456, 936) comprende la fijación del segundo punto (455, 935) al plano de dibujo ajustado (408, 908), por lo que la fijación hace que las coordenadas del punto final (456, 936) se determinen en el segundo sistema de coordenadas 3D.
3. El procedimiento de la reivindicación 1 o 2, en el que el plano de dibujo es una cuadrícula que comprende cuadrados que se ajustan en tamaño para indicar la profundidad del plano de dibujo.
4. El procedimiento de cualquier reivindicación precedente, en el que el puntero es un lápiz óptico que tiene una resolución establecida.
5. El procedimiento de la reivindicación 4, en el que la fijación comprende un ajuste x e y en el primer sistema de coordenadas, siendo el ajuste menor que la resolución del lápiz óptico multiplicada por un factor.
6. El procedimiento de la reivindicación 5, en el que el factor es un valor entre dos y cuatro.
7. El procedimiento de cualquier reivindicación anterior, que comprende además:
arrastrar el puntero, desde el primer punto hasta el segundo punto, a través de la pantalla interactiva para formar la curva.
8. El procedimiento de la reivindicación 7, en el que el primer punto se crea colocando el lápiz óptico sobre la superficie de la pantalla interactiva, y el segundo punto se crea levantando el lápiz óptico de la superficie de la pantalla interactiva.
9. El procedimiento de cualquier reivindicación precedente, en el que la curva se encuentra en un plano definido por un vector entre el punto inicial y el punto final en el segundo sistema de coordenadas 3D, y una línea perpendicular al vector que es paralela al plano de la pantalla en el que se dibujó la curva.
10. Una herramienta de dibujo para dibujar una curva a mano alzada (450, 931), comprendiendo la herramienta de dibujo una pantalla interactiva 2D (215, 415) y un puntero (440) para interactuar con la pantalla interactiva 2D (215, 415), y la herramienta para dibujar una curva a mano alzada (450, 931) en la pantalla interactiva 2D (215, 415) en un primer sistema de coordenadas (205, 405, 905), estando la curva (450, 931) representada en el espacio 3D en un segundo sistema de coordenadas 3D (210, 410, 910), con una tercera dimensión, que requiere ser determinada, en la que la curva (450, 931) se dibuja en un plano de dibujo 2D (408, 908) posicionado dentro del segundo sistema de coordenadas 3D (210, 410, 910), y en la que el plano de dibujo (408, 908) es paralelo al plano de la pantalla interactiva (215, 415), en la que la pantalla interactiva (215, 415) es paralela al plano x-y del primer sistema de coordenadas (205, 405, 905), comprendiendo además la herramienta de dibujo:
medios para seleccionar, para su representación en la pantalla interactiva (215, 415), una vista en perspectiva de un objeto de dibujo en 3D (220, 420, 920), comprendiendo el objeto de dibujo características (220, 420, 430, 436, 920), en la que la orientación del plano de dibujo (408, 908) se determina seleccionando la vista en perspectiva;
medios para crear un primer punto (445, 925) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
medios para capturar el primer punto (445, 925) en el segundo sistema de coordenadas 3D (210, 410, 910) como punto de inicio (446, 926) para una curva (450, 931) que se dibuja en el plano de dibujo (408, 908), en el que los medios para capturar el primer punto (445, 925) como punto de inicio (446, 926) comprende fijar el primer punto (445, 925) en una posición que coincida con una característica (436, 920) del objeto de dibujo que esté más próxima al primer punto (445, 925) en la vista en perspectiva seleccionada, en la que la característica es un borde, una superficie o una línea del objeto de dibujo, en la que la característica (436, 920) del objeto de dibujo más cercana al primer punto es de posición conocida en el segundo sistema de coordenadas 3D (210, 410, 910), por lo que la fijación hace que las coordenadas del punto de inicio (446, 926) se determinen en l el segundo sistema de coordenadas 3D, y en el que el plano de dibujo (408, 908) se ajusta para que se encuentre a la profundidad de la característica (436, 920) del objeto de dibujo (220, 420, 920) más cercana al primer punto (445, 925) en la vista en perspectiva seleccionada; medios para crear un segundo punto (455, 935) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
medios para capturar el segundo punto (455, 935) en el segundo sistema de coordenadas tridimensional (210, 410, 910) como punto final (456, 936) de la curva (450, 931), en la que los medios para capturar el segundo punto (455, 935) como punto final (456, 936) comprende fijar el segundo punto (455, 935) en una posición que coincida con una característica (436, 920) del objeto de dibujo (220, 420, 920) más cercana al
segundo punto (455, 935) en la vista en perspectiva seleccionada, en la que la característica es un borde, una superficie o una línea del objeto de dibujo, en la que la característica (436, 920) del objeto de dibujo más cercana al segundo punto es de posición conocida en el segundo sistema de coordenadas 3D (210, 410, 910), por lo que la fijación hace que las coordenadas del punto final (456, 936) se determinen en el segundo sistema de coordenadas 3D.
11. Una herramienta de dibujo para dibujar una curva a mano alzada (450, 931), comprendiendo la herramienta de dibujo una pantalla interactiva 2D (215, 415) y un puntero (440) para interactuar con la pantalla interactiva 2D (215, 415), y la herramienta para dibujar una curva a mano alzada (450, 931) en la pantalla interactiva 2D (215, 415) en un primer sistema de coordenadas (205, 405, 905), estando la curva (450, 931) representada en el espacio 3D en un segundo sistema de coordenadas 3D (210, 410, 910), con una tercera dimensión, que requiere ser determinada, en la que la curva (450, 931) se dibuja en un plano de dibujo 2D (408, 908) posicionado dentro del segundo sistema de coordenadas 3D (210, 410, 910), y en la que el plano de dibujo (408, 908) es paralelo al plano de la pantalla interactiva (215, 415), en la que la pantalla interactiva (215, 415) es paralela al plano x-y del primer sistema de coordenadas (205, 405, 905),
comprendiendo además la herramienta de dibujo:
medios para seleccionar, para su representación en la pantalla interactiva (215, 415), una vista en perspectiva de un objeto de dibujo en 3D (220, 420, 920), comprendiendo el objeto de dibujo características (220, 420, 430, 436, 920), en la que la orientación del plano de dibujo (408, 908) se determina seleccionando la vista en perspectiva;
medios para crear un primer punto (445, 925) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
medios para capturar el primer punto (445, 925) en el segundo sistema de coordenadas 3D (210, 410, 910) como punto de inicio (446, 926) para una curva (450, 931) que se dibuja en el plano de dibujo (408, 908), en la que los medios para capturar el primer punto (445, 925) como punto de inicio (446, 926) comprende fijar el primer punto (445, 925) en una posición que coincida con una característica (436, 920) del objeto de dibujo que esté más próxima al primer punto (445, 925) en la vista en perspectiva seleccionada, en la que la característica es un borde, una superficie o una línea del objeto de dibujo, en la que la característica (436, 920) del objeto de dibujo más cercana al primer punto es de posición conocida en el segundo sistema de coordenadas 3D (210, 410, 910), por lo que la fijación hace que las coordenadas del punto de inicio (446, 926) se determinen en el segundo sistema de coordenadas 3D, y en el que el plano de dibujo (408, 908) se ajusta para que se encuentre a la profundidad de la característica (436, 920) del objeto de dibujo (220, 420, 920) más cercana al primer punto (445, 925) en la vista en perspectiva seleccionada; medios para crear un segundo punto (455, 935) en el primer sistema de coordenadas (205, 405, 905) en la pantalla interactiva (215, 415);
medios para capturar el segundo punto (455, 935) en el segundo sistema de coordenadas 3D (210, 410, 910) como punto final (456, 936) de la curva (450, 931), en la que los medios para capturar el segundo punto (455, 935) como punto final (456, 936) comprenden la fijación del segundo punto al plano de dibujo ajustado (408, 908), por lo que la fijación hace que se determinen las coordenadas del punto final (456, 936) en el segundo sistema de coordenadas 3D.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1905165.5A GB2583085A (en) | 2019-04-11 | 2019-04-11 | Tool and method for drawing 3-D curves in 2-D |
| PCT/EP2020/060280 WO2020208204A1 (en) | 2019-04-11 | 2020-04-09 | Tool and method for drawing 3-d curves in 2-d |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2939596T3 true ES2939596T3 (es) | 2023-04-25 |
Family
ID=66809938
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20718653T Active ES2939596T3 (es) | 2019-04-11 | 2020-04-09 | Herramienta y procedimiento para dibujar curvas 3D en 2D |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20220165005A1 (es) |
| EP (1) | EP3931675B1 (es) |
| ES (1) | ES2939596T3 (es) |
| GB (1) | GB2583085A (es) |
| PL (1) | PL3931675T3 (es) |
| WO (1) | WO2020208204A1 (es) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113140021B (zh) * | 2020-12-25 | 2022-10-25 | 杭州今奥信息科技股份有限公司 | 矢量线生成方法、系统及计算机可读存储介质 |
| US11989806B2 (en) * | 2021-09-01 | 2024-05-21 | Adobe Inc. | Continuous curve textures |
| CN114492230B (zh) * | 2022-01-06 | 2022-08-09 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种飞行器高空气动力曲线的获得方法 |
| US11983802B2 (en) * | 2022-07-13 | 2024-05-14 | Verizon Patent And Licensing Inc. | Systems and methods for annotating a scene to include digital objects |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5237647A (en) * | 1989-09-15 | 1993-08-17 | Massachusetts Institute Of Technology | Computer aided drawing in three dimensions |
| US5490241A (en) * | 1989-10-06 | 1996-02-06 | Xerox Corporation | Interactive computer graphics system for making precise drawings |
| US5461709A (en) * | 1993-02-26 | 1995-10-24 | Intergraph Corporation | 3D input system for CAD systems |
| WO1997018533A1 (en) * | 1995-11-15 | 1997-05-22 | British United Shoe Machinery Co. Ltd. | Computer aided design system |
| CA2543980A1 (en) * | 2005-04-18 | 2006-10-18 | Steve Tsang | Method, system and computer program for using a suggestive modeling interface |
| JP2006343954A (ja) * | 2005-06-08 | 2006-12-21 | Canon Inc | 画像処理方法、画像処理装置 |
| KR100809521B1 (ko) * | 2005-12-08 | 2008-03-04 | 한국전자통신연구원 | 복수의 영상간 대응곡선을 이용한 3차원 곡면 생성 기법 |
| US7701457B2 (en) * | 2006-02-21 | 2010-04-20 | Chrysler Group Llc | Pen-based 3D drawing system with geometric-constraint based 3D cross curve drawing |
| US20120206419A1 (en) * | 2011-02-11 | 2012-08-16 | Massachusetts Institute Of Technology | Collapsible input device |
| US9147282B1 (en) * | 2011-11-02 | 2015-09-29 | Bentley Systems, Incorporated | Two-dimensionally controlled intuitive tool for point cloud exploration and modeling |
| CA2893586C (en) * | 2014-06-17 | 2021-01-26 | Valorisation-Recherche, Limited Partnership | 3d virtual environment interaction system |
| US10216389B2 (en) * | 2016-09-02 | 2019-02-26 | Adobe Inc. | Mirror snapping during vector drawing |
| CN109863467B (zh) * | 2016-10-21 | 2022-01-25 | 惠普发展公司,有限责任合伙企业 | 虚拟现实输入的系统、方法和存储介质 |
-
2019
- 2019-04-11 GB GB1905165.5A patent/GB2583085A/en not_active Withdrawn
-
2020
- 2020-04-09 ES ES20718653T patent/ES2939596T3/es active Active
- 2020-04-09 WO PCT/EP2020/060280 patent/WO2020208204A1/en not_active Ceased
- 2020-04-09 EP EP20718653.7A patent/EP3931675B1/en active Active
- 2020-04-09 PL PL20718653.7T patent/PL3931675T3/pl unknown
- 2020-04-09 US US17/601,201 patent/US20220165005A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| WO2020208204A1 (en) | 2020-10-15 |
| GB2583085A (en) | 2020-10-21 |
| EP3931675B1 (en) | 2023-01-11 |
| WO2020208204A8 (en) | 2021-10-07 |
| PL3931675T3 (pl) | 2023-06-19 |
| US20220165005A1 (en) | 2022-05-26 |
| EP3931675A1 (en) | 2022-01-05 |
| GB201905165D0 (en) | 2019-05-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2939596T3 (es) | Herramienta y procedimiento para dibujar curvas 3D en 2D | |
| US20250022150A1 (en) | Three-dimensional stabilized 360-degree composite image capture | |
| US9153062B2 (en) | Systems and methods for sketching and imaging | |
| US9149309B2 (en) | Systems and methods for sketching designs in context | |
| JP4964801B2 (ja) | 2次元実写映像から3次元モデルを生成する方法及び装置 | |
| KR0125776B1 (ko) | 선요소 데이타의 3차원 변환 장치 및 방법 | |
| US9053553B2 (en) | Methods and apparatus for manipulating images and objects within images | |
| US8970586B2 (en) | Building controllable clairvoyance device in virtual world | |
| US20170091993A1 (en) | 3D Model Generation From Map Data and User Interface | |
| US20100245352A1 (en) | Method and system for 3d object positioning in 3d virtual environments | |
| US20130300740A1 (en) | System and Method for Displaying Data Having Spatial Coordinates | |
| CN102183261A (zh) | 为非照片写实3d地图重新使用照片写实3d地标的方法 | |
| US9478058B2 (en) | Object correcting apparatus and method and computer-readable recording medium | |
| CN102163340A (zh) | 计算机系统中实现三维动态几何图形数据信息标注的方法 | |
| WO2018138657A1 (en) | Affine transformations of 3d elements in a virtual environment using a 6dof input device | |
| McCrae | Sketch-based path design | |
| Wu et al. | Multiperspective focus+ context visualization | |
| Pindat et al. | Drilling into complex 3D models with gimlenses | |
| Yamaura et al. | Shape reconstruction from a normal map in terms of uniform bi-quadratic B-spline surfaces | |
| US20170270708A1 (en) | Virtual interactive definition of volumetric shapes | |
| KR20140019199A (ko) | 적외선 동작 인식 카메라를 사용한 네추럴 유저 인터페이스 기반 입체 지구본의 제조 방법 | |
| JP6093704B2 (ja) | 描画装置、描画方法及び描画プログラム | |
| WO2014014928A2 (en) | Systems and methods for three-dimensional sketching and imaging | |
| KR20220143611A (ko) | 3차원 스케치를 위한 인터페이싱 방법 및 장치 | |
| Semmo | Design and implementation of non-photorealistic rendering techniques for 3D geospatial data |
