Red de conocimiento informático - Material del sitio web - Algoritmo para rellenar polígonos con líneas paralelas

Algoritmo para rellenar polígonos con líneas paralelas

Recientemente hice un pequeño algoritmo que usa líneas paralelas para llenar áreas poligonales. Si ha utilizado AutoCAD, sabe que puede seleccionar un área, especificar el ángulo α de las líneas paralelas y el espacio entre las líneas paralelas y luego rellenar el área.

La esencia de rellenar líneas paralelas aquí es cómo calcular los puntos de intersección de polígonos y líneas paralelas, y finalmente conectar los puntos de intersección relevantes. El proceso específico es el siguiente:

Para áreas poligonales, definimos la clase como límite. Un límite puede tener múltiples polígonos, un polígono externo y múltiples polígonos internos

A. Si el El punto central está dentro de un polígono, entonces el segmento de línea que conecta dos puntos debe estar dentro del polígono, por lo que el segmento de línea que conecta dos puntos debe estar dentro del polígono, por lo que el segmento de línea que conecta dos puntos debe estar dentro del polígono, por lo que el segmento de línea conectar dos puntos debe estar dentro del polígono. El punto medio debe estar dentro del polígono, por lo que estos dos puntos deben conservarse;

B. Si el punto medio está fuera del polígono, entonces el segmento de línea que conecta los dos puntos debe estar fuera del polígono, por lo que estos dos los puntos deben eliminarse;

C. Si el punto medio está en el borde del polígono, entonces juzgue si estos dos puntos deben conservarse de acuerdo con las condiciones. Las reglas de juicio son las siguientes:

C1. Necesitamos mostrar líneas rellenas paralelas que coincidan con los bordes del polígono

C11, si el polígono actual es un polígono exterior, mantenga estos dos puntos;

C12, si el polígono actual es un polígono interior, elimínelo Estos 2 puntos;

C2, si no necesitamos mostrar líneas de relleno paralelas que se superpongan a los bordes del polígono

C21, el polígono actual es un polígono interior , luego elimina estos 2 puntos;

C22, si el polígono actual es un polígono interno, conserva estos dos puntos;

Publica algunos de tus propios efectos

Figura 6