Yo estoy buscando para la impresión de texto en el interior de un polígono, mediante programación. Me gustaría encontrar el rectángulo más grande para colocar el texto dentro del polígono de un sub conjunto de rectángulos, es decir, aquellas orientadas con su eje mayor a lo largo de incrementos de 45°, por ejemplo, de 0°, 45°, 90°, etc.
No estoy 100% seguro de si me he hecho esta pregunta correctamente, pero el punto de esto es conseguir un default de la posición y orientación de un texto dentro de un polígono. Estoy abierto a cualquier atisbo de sugerencias alternativas, pero supongo que sería ideal como un algoritmo para trabajar fuera de este rectángulo.
También estoy consciente de que es posible que a la hora de idear un polígono que haría la mayoría de los algoritmos inútil que se incluya como parte del polígono una extremadamente larga y delgada sección rectangular, lo que resulta en ilegible el texto, si no es posible dar cuenta de esto de alguna manera, estoy bien con asumiendo que esto no va a ocurrir en mi situación, ya que habrá un manual para la posición y la orientación en mi escenario.
EDITAR: Pensando en lo complicado que es esto, podría ser más fácil para eliminar la restricción angular, a continuación, gire y reducir el tamaño del rectángulo a una de esas orientaciones después de calcular como una simplificación. También supongo que la longitud del texto es muy importante, por lo que el algoritmo tiene que ser adaptable a un rectángulo de una relación específica...
Siéntase libre de tirar ideas, estoy feliz de rebote de ida y vuelta con la gente acerca de la mejor manera de hacer esto.
EDIT2: Sugerido por un amigo: Calcular la línea más larga en el interior del polígono, a continuación, utilizarlo como un eje para un rectángulo. Así que voy a enumerar todas las líneas que van a través de 2 vértices hasta que encuentre el más largo, entonces rectangularise cada línea de partida en el más largo, en el rectángulo más grande con las proporciones correctas. A continuación, el más grande de estos debe ser bastante parecido a lo que quiero. Cualquier comentario en este enfoque?
EDIT3: Terminé el dibujo de la "más grande" rectángulo por la subdivisión de mi problema en el área de seguridad en una red de n por n cuadrados (donde n es relativamente grande, aunque es razonable que mi dominio del problema, tamaño), comprobando si las cuatro esquinas estaban todos dentro de la poli. Si se quisiera aumentar el tamaño de la plaza por n, interating esto hasta que estaba a las afueras de la poli, luego de aumentar n longitud sabio y repita el aumento de anchura (el mantenimiento de un registro de la mayor área del rectángulo como me fue) hasta que había encontrado la mayor rectángulo para que el tamaño de la subdivisión. Me gustaría entonces la mitad n y a partir de mi actual rectángulo más grande, repita el proceso. Repetir todo hasta que llegué a un pequeño adecuado valor de n.