none
Dibujar en metros coordenadas papel GDI+ RRS feed

  • Pregunta

  • Hola buenas tardes;

    Intentando buscar de cómo lograr la verdad no pude, por lo que me remito al mejor foro para que me puedan ayudar. ¿Cómo podrìa dibujar por ejemplo un simple rectangulo que mide 0.35 m de ancho x 0.45 m de alto en un PictureBox?, guardando el ratio de la sección claro esta. El valor del ancho y alto de la sección los ingreso a través de un TextBox.

    Se que existe en la clase Graphics, la posibilidad de cambiar las unidades a milimetros, pero no he logrado como poder hacer esto. La idea es que en toda mi aplicación se manejará el mismo sistema de unidades para las medidas.

    Espero me puedan ayudar con un ejemplo simple, pues eso me bastará para poder emprender lo que quiero realizar.

    Muchas gracias. Dios los beniga.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    • Cambiado Enrique M. Montejo jueves, 15 de octubre de 2015 18:03 Pregunta relacionada con controles de Windows Forms.
    domingo, 11 de octubre de 2015 18:36

Respuestas

  • Hola

    ¿Así es lo que quieres?


    Pedro López

    sábado, 17 de octubre de 2015 21:51
  • Hola

    Le reitero que es un borrador. Funciona así:

    Colocar alto y ancho en 1 y 2. Presionar botón 3 y aparece el dibujo rojo en el Picture 4 y la relación pixel x metro en 5 (en este caso 400)

    En cualquiera de los texbox 7 colocar el nuevo valor. Al salir con la tecla TAB automáticamente se carga en el otro texbox el valor que corresponde manteniendo el ratio. pero se recalcula la relación pixel x metro (en este caso se va a 667) y se dibuja el rectángulo en azul que termina siendo igual al primero.

    Pero si en el codigo anulamos la linea 31 ( se saltea la sub calculando2) no se vuelve a recalcular la relación pixel x metro y queda así

    Ahora si las segundas medidas son mayores que las primera la imagen se sale del Picture, cosa que no sucedía cuando la sub calculando2 estaba habilitada.

    Espero se halla entendido

    Saludos


    Pedro López

    lunes, 19 de octubre de 2015 11:20

Todas las respuestas

  • Hola 

    Yo tendria en cuenta que estás trabajando con unidades pixcel. Puedes encontrar la relacción pixcel a mm en variso sitios (http://www.unitconversion.org/typography/pixels-x-to-millimeters-conversion.html)

    De allí en mas deberias establlecer una relación de acuero conlas medidas promedio que piensas usar.

    Saludos 



    Pedro López

    martes, 13 de octubre de 2015 0:47
  • Hola Pedro, de antemano gracias por su respuesta.

    Lo de la conversión no hay problema en eso,pues soy Ingeniero Civil y conozco sobre eso. Mi problema se centra en como hacer medainte código con la Clase Graphics.Units, representando un simple rectangulo en un PictureBox. ¿Sabe a lo que me refiero?. Espero me pueda ayudar con lo que pido. Como le comente la idea es manteniendo el ratio de la figura.

    Espero me pueda ayudar.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    martes, 13 de octubre de 2015 1:49
  • perdón Harold

    No quise subestimarlo. Yo soy médico y para mi esas cosas no son tan obvias.

    Estoy saliendo para hacerme un examne medico. Cuando vuelva veremos si puedo ayuarlo un poco más.

    saludos


    Pedro López

    martes, 13 de octubre de 2015 10:43
  • Hola de nuevo médico, disculpeme a mí más bien si interpretó eso, pero para nada, solo quise aclarar que el problema no es la conversión. Espero me pueda ayudar, pues lo que le comenté en el mensaje anterior es lo que quiero lograr, soy programador autodidacta, pero no conozco el código y he intentando buscar, para lo grar eso.

    Espero me pueda ayudar, y formar un grupo de ayuda mutua, pues al igual tengo conocimiento en la programación, lo cual me ha permitido desarrollar aplicaciones para mi profesión.

    Muchas gracias.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    martes, 13 de octubre de 2015 16:35
  • Fijese en https://gsalfaro.wordpress.com/2011/09/25/dibujando-figuras-dentro-de-un-picturebox-con-graphics-en-c/

    está en C pero es facil de tradcir

    ¿es eso lo que sca?


    Pedro López

    jueves, 15 de octubre de 2015 21:41
  • Prueba con esto:


    Imports System.Drawing
    
    Module Module1
    
        Sub Main()
            Dim width As Integer = 100 'en milimetros
            Dim Height As Integer = 100 'en milimetros
            Dim dpi As Integer = 300 'dots per inch
            Dim w As Integer = width * dpi / 25.4
            Dim h As Integer = Height * dpi / 25.4
    
            Dim bmp As New System.Drawing.Bitmap(w, h)
            bmp.SetResolution(dpi, dpi)
    
            Dim g As System.Drawing.Graphics
            g = System.Drawing.Graphics.FromImage(bmp)
    
            g.PageUnit = Drawing.GraphicsUnit.Millimeter
            g.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
            g.CompositingQuality = Drawing.Drawing2D.CompositingQuality.HighQuality
    
    
            g.Clear(Drawing.Color.White)
            Dim pen As New Pen(New SolidBrush(Color.Black)) With {.Width = 1}
    
    
            g.DrawRectangle(pen, 10, 10, 80, 80)
            bmp.Save("C:\test_mm.jpg", Drawing.Imaging.ImageFormat.Jpeg)
        End Sub
    
    End Module

    esto crea un cuadro de 80 mm por 80 mm en una imagen de 100 por 100 mm.

    y lo guarda en un archivo llamado test_mm.jpg en C:

    Si tienes dudas con gusto te ayudo.

    Saludos.


    jueves, 15 de octubre de 2015 21:52
  • Buenas tardes compañero, he mirado tu ejemplo, lo probè pero no guarda la imagen en ninguna parte de C. Lo otros que te pregunto es que necesito crear es el gràfico en un PictureBox, manteniendo el ratio si cambio las medidas.

    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    sábado, 17 de octubre de 2015 18:58
  • Hola, que pena. Ya hice que apareciera la imagen, pero ahora mi preguta es còmo mostrarlo en un PictureBox?. Te agradecerìa mucho, pues mi idea es crear una clase con varios mètodos. Muchas gracioas.

    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    sábado, 17 de octubre de 2015 19:02
  • Para ser màs preciso y visual. Muestro la siguiente imagen :

    En un PictureBox de 200 pix. * 200 pix, debo ser capaz de dibujar una secciòn rectangular de cualquier tamaño, pero èsta debe permanecer con el ratio de la sección(que se observe que es màs larga que ancha), pero sin desbordarse del PictureBox.

    Muchas gracias.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    sábado, 17 de octubre de 2015 19:50
  • Hola

    ¿Así es lo que quieres?


    Pedro López

    sábado, 17 de octubre de 2015 21:51
  • Hola señor Pearloga, la idea es que se dibuje dichas unidades de ancho y largo en metros dentro del Picturebox, cuando presione el botòn Dibujar. Ahora, la idea es que toca trasladar el origen de coordenadas al centro del Picturebox, para que la imagen que se dibuje siemore sea del centro hacia los lados, y lo màs importante que no importa que tan grande o pequña sean las dimensiones quepa dentro del PictureBox y mantenga la relaciòn de aspecto(super importante).

    Esper haberme hecho entender, muchas gracias por todo.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    domingo, 18 de octubre de 2015 4:12
  • Hola

    Si es del centro hacia los lados siempre estará en el cuadrante inferior derecho a menos que se permita el ingreso  de valores negativos


    Pedro López

    domingo, 18 de octubre de 2015 11:18
  • Buenos dìasseñor PearLoga;

    No, le voy a mostrar una imagen de un programa que uso para càlculos estructurales, observe que cuando cambio tanto su anacho como su largo( en metros) en la imagen que señalo con una flecha, cmabia automàticamente de tamaño, sin perder la relación de aspecto(que se vea que es màs larga que ancha, en caso de ser un rectàngulo, y que sea igual sus lados , si es un cuadrado...Espero me halla hecho entender.

    Al igual, creo yo que para hacer que se dibuje en el centro del PictureBox, bastarà con hacer una traslado de sus coordenadas.

    Gracias, espero pueda ayudarme.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    domingo, 18 de octubre de 2015 13:58
  • Prepare un proyecto que podes bajar en
    https://drive.google.com/folderview?id=0BzTHGo3FkbByN3pxQ3NhOUVxSlE&usp=sharing
    Es un borrador con muchos errores, pero la idea es ver si entendí tu pedido
    Contame como va
    Saludos

    Pedro

    Pedro López

    domingo, 18 de octubre de 2015 22:41
  • Señor PearLoga, voy a probarlo, de antemano le agradezco por su colaboración. Luego le comento como me va con eso.

    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    lunes, 19 de octubre de 2015 0:13
  • Estuve viendo el còdigo, y la verdad pues me he perdido un poco, la verda le agradezc enormemente por el querer ayudarme. La idea de la relaciòn de aspecto(ratio), es que internamente la calcule al hacer clic en Calcular, con el fin de que la pueda dibujar en el Picturebox, como ya lo dije, conservando la proporción(ratio).

    Me ha dado la idea, tratarè de hacer un ejemplo por mi propio medio, haber como me va, le agradezco mucho.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    lunes, 19 de octubre de 2015 0:23
  • Hola

    Le reitero que es un borrador. Funciona así:

    Colocar alto y ancho en 1 y 2. Presionar botón 3 y aparece el dibujo rojo en el Picture 4 y la relación pixel x metro en 5 (en este caso 400)

    En cualquiera de los texbox 7 colocar el nuevo valor. Al salir con la tecla TAB automáticamente se carga en el otro texbox el valor que corresponde manteniendo el ratio. pero se recalcula la relación pixel x metro (en este caso se va a 667) y se dibuja el rectángulo en azul que termina siendo igual al primero.

    Pero si en el codigo anulamos la linea 31 ( se saltea la sub calculando2) no se vuelve a recalcular la relación pixel x metro y queda así

    Ahora si las segundas medidas son mayores que las primera la imagen se sale del Picture, cosa que no sucedía cuando la sub calculando2 estaba habilitada.

    Espero se halla entendido

    Saludos


    Pedro López

    lunes, 19 de octubre de 2015 11:20