vectorial una sentido que linea largo khan integrales escalares escalar curvas curva campos campo calculo academy math graphics function 2d contour

math - sentido - que es una linea vectorial



Dibujar una línea iso de un campo escalar implícito 2D (1)

He tenido mucho éxito con los algoritmos descritos aquí http://web.archive.org/web/20140718130446/http://members.bellatlantic.net/~vze2vrva/thesis.html que discuten el contorno adaptativo (similar a lo que describes), y también algunos otros problemas con el trazado de curvas de nivel en general.

No hay una manera general de garantizar la búsqueda de todos los contornos de una función, sin mirar cada píxel. Podría haber un contorno cerrado muy pequeño, donde una región solo tiene aproximadamente el tamaño de un píxel donde la función es positiva, en una región donde la función es generalmente negativa. A menos que muestre lo suficiente como para colocar una muestra dentro de la región positiva, no hay una forma general de saber que está allí.

Si su función es lo suficientemente suave, puede adivinar dónde se encuentran esos contornos cerrados pequeños, porque el módulo de la función se vuelve pequeño en una región que los rodea. El muestreo podría refinarse solo en estas regiones.

Tengo un campo escalar implícito definido en 2D, para cada punto en 2D puedo hacer que calcule un valor escalar exacto pero es un cálculo algo complejo.
Me gustaría dibujar una línea iso de esa superficie, digamos la línea del valor ''0''. La función en sí es continua, pero la iso-línea ''0'' puede tener múltiples instancias continuas y no está garantizado que todas estén conectadas.
Calcular el valor de cada píxel no es una opción, ya que eso llevaría demasiado tiempo, en el orden de unos pocos segundos, y debe ser lo más real posible.

Lo que estoy usando actualmente es una división recursiva del espacio que se puede considerar como una especie de árbol cuádruple. Tomo una muestra inicial, muy burda del espacio y si encuentro un cuadrado que contiene una transición de valores positivos a negativos, lo divido recursivamente en 4 cuadrados más pequeños y los compruebo nuevamente, deteniéndome en el nivel de píxel. La transición positivo-negativo se detecta al muestrear un sqaure en sus 4 esquinas. Esto funciona bastante bien, excepto cuando no funciona. Las líneas iso que se dibujan a veces se cortan porque la detección de transición falla para las transiciones que ocurren en un área pequeña de un borde y que no cruzan una esquina de un cuadrado.

¿Hay una mejor manera de hacer un dibujo iso-line en esta configuración?