Red de conocimiento informático - Conocimiento informático - Programación de números de islas

Programación de números de islas

Mi pequeña idea, extraer el límite (se conocen las coordenadas x, y de todos los puntos)

Pasos

1. Cree una cola de puntos límite existente, que inicialmente está vacía.

2. Primero encuentre el primer punto (x, Y) y extraiga el punto con la coordenada Y mínima. Si existe la misma coordenada Y, tome cualquier punto.

3. Agregue el punto (x, y) a la cola de puntos límite.

4. Comenzando desde el punto (x, y), marque el punto inicial del punto y atraviese secuencialmente todos los puntos (x1, y1) en la cola de puntos límite excepto los puntos existentes.

5. Calcule la relación de elevación entre x y y x1, y1, y encuentre todos los puntos (x1, y1) con el ángulo de elevación intermedio más pequeño. Esto se puede calcular mediante la pendiente entre los dos puntos. Preste atención a las relaciones positivas y negativas (lo mismo. Para la relación entre ángulos de elevación, debe registrar la longitud entre dos puntos. Si los ángulos de elevación son iguales, tome el punto con la longitud más corta).

6. Agregue el punto (x1, y1) a la cola de límites (a partir de este paso, repita los pasos 3, 4, 5), repita hasta recuperar el punto inicial y se complete el cálculo del límite.

Lo siento, leí mal la pregunta como coordenadas bidimensionales.

Las coordenadas tridimensionales pueden resultar un poco engorrosas. Algunas de mis ideas no han sido validadas personalmente. Sólo un recordatorio, espero que ayude.

Pasos

1. Extrae el punto con la coordenada Z más pequeña. Si hay varios puntos, tome cualquier punto.

2. Cree una cola de registros de línea de conexión, que inicialmente está vacía.

3. Recorra todos los puntos excepto este, busque el punto con el ángulo de elevación más pequeño y regístrelo con la línea que conecta estos dos puntos.

4. Recorra todos los puntos (x, y, z) en la cola de registro de la línea de conexión, excepto los puntos finales de la línea de conexión existente, calcule la línea de conexión y el punto (x, y, z) y los tres puntos. excepto el plano La relación de distancia vertical de todos los demás puntos fuera del punto (hay una relación positiva y negativa). Si otros puntos están en el mismo lado del plano, es decir, las relaciones positivas y negativas son consistentes, entonces se determina que el plano de tres puntos es uno de los triángulos límite.

5.(A partir de este paso, repita el paso 4 con los otros dos lados de la triangulación de límites, excepto el lado inicial, hasta el punto medio de la cola de registro de la línea de conexión existente hasta que no se encuentren puntos calificados. )

Esto completa el cálculo de todos los puntos límite.

Creo que hay algún problema con tu algoritmo. Los bordes de un triángulo delimitador también pueden ser utilizados por varios triángulos.

En mi humilde opinión, no especule sin verificación.