Profesional Computer Graphics nunca es fácil. Es por eso que hay pocas personas que realmente lo aborden. Para empeorar las cosas, las técnicas profesionales rara vez se publican. No sé cuánto esfuerzo desea hacer para obtenerlo, pero le daré un poco de luz. Por lo tanto, si desea desea, puede estudiar, desarrollar y obtener de la mejor manera. Si parece demasiado difícil para usted, déjelo aquí como una curiosidad.
La manera profesional para hacer pinceles caligráficos hoy en día es como que:
La curva maestra es suave porque se dibuja sobre la base de estría (s). Para obtener el resultado más profesional, la construcción de dos ranuras: una utilizando los puntos que obtuvo (por ejemplo, de eventos de ratón) que se encuentra sobre la curva de selección y otro utilizando los puntos como los puntos de control spline. Entonces, la curva que dibuja es la curva generada por la interpolación de estas dos splines. De esta manera, tienes una "curva maestra" para dibujar.
También debe tener un "espesor maestro" en la que se debe aplicar una variación . Esta variación de espesor se calcula según el resultado que desee. El tipo más común de pincel caligráfico es solo , como en la imagen que vinculó: las regiones curvas suelen ser más delgadas que las rectas. Es el tipo más habitual porque la mayoría de los diseñadores de obtienen este tipo de resultados cuando dibujan con una tableta, por lo que los programas emulan este comportamiento. Este efecto en particular es usualmente calculado usando una función basada en la segunda derivada de la spline maestra . La amplitud de variación de espesor puede ser un valor configurable.
Las puntas curvas finas y afiladas se hacen en un cálculo adicional. A veces puede ser una buena idea suavizar incluso las variaciones de espesor con splines o algún tipo de "función ceil".
Si ha hecho todo bien, tiene un espesor (y por supuesto cerrado) curva en sus manos. Dibuja con el mejor algoritmo de relleno que puedas desarrollar.Utilice anti-aliasing si puede.
Todas estas técnicas se pueden calcular en tiempo real mientras el usuario mueve el mouse. Cuantos más puntos obtenga, más cálculos hará , pero funciona bien porque la mayoría de los cálculos que ya realizó son aún válidos. Usualmente solo necesitas reconstruir una pequeña (última) parte.
Una última sugerencia: nunca llegan 2D suavizado mediante regresión función métodos, a menos que las representan en realidad una función (por lo que necesita para mantener el "significado matemático" de los puntos tanto como sea posible). Puedo no imaginar una forma más lenta de suavizar los puntos que no tienen semántica especial . La única excepción es cuando tiene puntos muy escasos y el orden de entrada no importa, pero no es el caso cuando alguien dibuja con pinceles al .
bueno pratik, has encontrado alguna solución para esto. puedes por favor ayudarme a lograr lo mismo. – skygeek