Foros del Web » Programación para mayores de 30 ;) » .NET »

Comprobar que una recta atraviesa un poligono

Estas en el tema de Comprobar que una recta atraviesa un poligono en el foro de .NET en Foros del Web. Hola amigos del foro. A ver si me pueden ayudar con este tema. He creado un poligono de esta manera con VB: Código: Private Sub ...
  #1 (permalink)  
Antiguo 06/02/2012, 07:33
 
Fecha de Ingreso: agosto-2011
Mensajes: 59
Antigüedad: 12 años, 9 meses
Puntos: 0
Comprobar que una recta atraviesa un poligono

Hola amigos del foro.

A ver si me pueden ayudar con este tema.

He creado un poligono de esta manera con VB:

Código:
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) _
    Handles MyBase.Paint

Dim Grafico As System.Drawing.Graphics
        Dim Lapiz As New System.Drawing.Pen(System.Drawing.Color.DarkSalmon)
        Grafico = Me.CreateGraphics
        Grafico.DrawLine(Lapiz, 0, 500, 500, 0) 'De IZQ a DCHA


        Dim Grafico1 As System.Drawing.Graphics
        Dim Lapiz1 As New System.Drawing.Pen(System.Drawing.Color.DarkSalmon)
        Grafico1 = Me.CreateGraphics
        Dim pts() As Point = { _
        New Point(10, 10), _
        New Point(200, 100), _
        New Point(300, 50), _
        New Point(350, 120), _
        New Point(240, 260), _
        New Point(120, 150), _
        New Point(50, 310), _
        New Point(70, 190) _
        }
        Grafico1.DrawPolygon(Pens.Aquamarine, pts)
Me lo crea correctamente.

El problema viene cuando, si una recta lo atraviesa, mandar un sms de alerta diciendo que esta recta a entrado en la región del polígono y ha salido de esa misma región.

¿De qué manera puedo hacer esa comprobación?

Espero que me hayan entendido y puedan ayudarme...

Gracias de antemano
  #2 (permalink)  
Antiguo 08/02/2012, 04:22
 
Fecha de Ingreso: agosto-2011
Mensajes: 59
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Comprobar que una recta atraviesa un poligono

Hola Amigos.

Solo quiero decir que ya encontré la solución.

Apartir de dos puntos dados, puedes conocer una recta y cuando la tengas, sacar todos los puntos que creas convenientes de misma (todo esto, en cualquier libro de matemáticas, esta resulto)

Una vez hecho eso, solo queda ver qué puntos de esa recta son los más característicos para sacar el área por donde va:

Código:
Dim x As New Point(100, 400) 'PUNTO QUE PERTENECE A LA TRAYECTORIA
        Dim xx As New Point(350, 150) 'PUNTO QUE PERTENECE A LA TRAYECTORIA



        'AREA 1
        Dim pts() As Point = { _
        New Point(50, 100), _
        New Point(100, 450), _
        New Point(450, 350), _
        New Point(350, 50), _
        New Point(200, 100), _
        New Point(100, 50), _
        New Point(100, 50) _
        }

        ' COMPROBACION AREA 1
        
        Dim path As New GraphicsPath()
        path.AddPolygon(pts)
        Dim region1 As New Region(path)
        Dim contained As Boolean = region1.IsVisible(x)
        Dim contained2 As Boolean = region1.IsVisible(xx)

        If (contained = True) And (contained2 = True) Then
            MessageBox.Show("Region1")
        End If
Espero que con esto, pueda también, haber solucionado cualquier problemilla.

Un saludo

Etiquetas: vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:19.