Delimitar area de una figura!!

20/10/2008 - 09:26 por Miguel Angel Mora | Informe spam
Buenas, Dado un programa que permite a un usuario crear figuras complejas a
partir de otras simples tego un problema cuando intento determinar si han
sido seleccionadas. Me explico:

para saber si una figura se ha seleccionado utilizo la propiedad Isvisible
de la clase Region. Las figuras estan formadas por un Camino, cada vez que
añado una nueva forma a la figura actualizo el camino y la regíon que cada
figura tiene como propiedad. Las figuras se rotan perfectamente y se
redibujan bien pero al rotarlas tengo un problema con la seleccion, ya que
hay zonas en las que no hay figura y se puede seleccionar y viceversa.
Ni que decir tiene que aplico la matriz de transformación tambien a la
región antes de consultar su propiedad Isvisible.

Y ya puestos a abusar he estado mirando pero no veo por ningún sisito
pueden formar parte de un camino imagenes e iconos y si se puede como.



Gracias por vuestra ayuda.

Preguntas similare

Leer las respuestas

#1 RFOG
20/10/2008 - 15:49 | Informe spam
Como no te responde nadie, lo haré, aunque no lo tengo muy claro.

Hasta donde yo sé, un "path" es eso: una ruta de puntos, por lo tanto no te
sirve para definir una figura con huecos etc.

En win32 existen varios modos de coordenadas (que no sé si están en .NET),
uno de ellos es el que se llama "coordenadas del mundo" o World Coordinates
que te permite rotaciones, desplazamientos y deformaciones de un conjunto de
elementos GDI... o eso creo recordar.

Lo que IMHO debes hacer no es juntar las figuras mediante un path, sino ir
manteniendo un conjunto de las figuras que forman la figura completa, y
mediante las "coordenadas del mundo" hacer las rotaciones y traslaciones
necesarias... o eso creo.

"Miguel Angel Mora" wrote in
message news:
Buenas, Dado un programa que permite a un usuario crear figuras complejas
a
partir de otras simples tego un problema cuando intento determinar si han
sido seleccionadas. Me explico:

para saber si una figura se ha seleccionado utilizo la propiedad
Isvisible
de la clase Region. Las figuras estan formadas por un Camino, cada vez que
añado una nueva forma a la figura actualizo el camino y la regíon que
cada
figura tiene como propiedad. Las figuras se rotan perfectamente y se
redibujan bien pero al rotarlas tengo un problema con la seleccion, ya
que
hay zonas en las que no hay figura y se puede seleccionar y viceversa.
Ni que decir tiene que aplico la matriz de transformación tambien a la
región antes de consultar su propiedad Isvisible.

Y ya puestos a abusar he estado mirando pero no veo por ningún sisito
pueden formar parte de un camino imagenes e iconos y si se puede como.



Gracias por vuestra ayuda.




Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Si una nación tiene un héroe, estará salvada.
Respuesta Responder a este mensaje
#2 Miguel Angel Mora
20/10/2008 - 16:12 | Informe spam
Estas equivocado un path no es un conjunto de puntos, es un conjunto de
directivas de dibujo, puedes ir añadiendo addcircle(),
addrectangle, addline, etc.
y posteriormente dibujar el path en la posicion x e y que te interese.
Gracias pero no me sirve tu respuesta

"RFOG" wrote:

Como no te responde nadie, lo haré, aunque no lo tengo muy claro.

Hasta donde yo sé, un "path" es eso: una ruta de puntos, por lo tanto no te
sirve para definir una figura con huecos etc.

En win32 existen varios modos de coordenadas (que no sé si están en .NET),
uno de ellos es el que se llama "coordenadas del mundo" o World Coordinates
que te permite rotaciones, desplazamientos y deformaciones de un conjunto de
elementos GDI... o eso creo recordar.

Lo que IMHO debes hacer no es juntar las figuras mediante un path, sino ir
manteniendo un conjunto de las figuras que forman la figura completa, y
mediante las "coordenadas del mundo" hacer las rotaciones y traslaciones
necesarias... o eso creo.

"Miguel Angel Mora" wrote in
message news:
> Buenas, Dado un programa que permite a un usuario crear figuras complejas
> a
> partir de otras simples tego un problema cuando intento determinar si han
> sido seleccionadas. Me explico:
>
> para saber si una figura se ha seleccionado utilizo la propiedad
> Isvisible
> de la clase Region. Las figuras estan formadas por un Camino, cada vez que
> añado una nueva forma a la figura actualizo el camino y la regíon que
> cada
> figura tiene como propiedad. Las figuras se rotan perfectamente y se
> redibujan bien pero al rotarlas tengo un problema con la seleccion, ya
> que
> hay zonas en las que no hay figura y se puede seleccionar y viceversa.
> Ni que decir tiene que aplico la matriz de transformación tambien a la
> región antes de consultar su propiedad Isvisible.
>
> Y ya puestos a abusar he estado mirando pero no veo por ningún sisito
> pueden formar parte de un camino imagenes e iconos y si se puede como.
>
>
>
> Gracias por vuestra ayuda.
>

Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
> Si una nación tiene un héroe, estará salvada.

Respuesta Responder a este mensaje
#3 RFOG
20/10/2008 - 16:51 | Informe spam
Pues entonces lo que ahora no entiendo yo es tu pregunta... Si lo que
quieres es determinar si hay huecos o la forma geométrica resultante,
supongo que tendrás que irte a algoritmos geométricos que ni Win32 ni .NET
tienen...


"Miguel Angel Mora" wrote in
message news:
Estas equivocado un path no es un conjunto de puntos, es un conjunto de
directivas de dibujo, puedes ir añadiendo addcircle(),
addrectangle, addline, etc.
y posteriormente dibujar el path en la posicion x e y que te interese.
Gracias pero no me sirve tu respuesta

"RFOG" wrote:

Como no te responde nadie, lo haré, aunque no lo tengo muy claro.

Hasta donde yo sé, un "path" es eso: una ruta de puntos, por lo tanto no
te
sirve para definir una figura con huecos etc.

En win32 existen varios modos de coordenadas (que no sé si están en
.NET),
uno de ellos es el que se llama "coordenadas del mundo" o World
Coordinates
que te permite rotaciones, desplazamientos y deformaciones de un conjunto
de
elementos GDI... o eso creo recordar.

Lo que IMHO debes hacer no es juntar las figuras mediante un path, sino
ir
manteniendo un conjunto de las figuras que forman la figura completa, y
mediante las "coordenadas del mundo" hacer las rotaciones y traslaciones
necesarias... o eso creo.

"Miguel Angel Mora" wrote in
message news:
> Buenas, Dado un programa que permite a un usuario crear figuras
> complejas
> a
> partir de otras simples tego un problema cuando intento determinar si
> han
> sido seleccionadas. Me explico:
>
> para saber si una figura se ha seleccionado utilizo la propiedad
> Isvisible
> de la clase Region. Las figuras estan formadas por un Camino, cada vez
> que
> añado una nueva forma a la figura actualizo el camino y la regíon que
> cada
> figura tiene como propiedad. Las figuras se rotan perfectamente y se
> redibujan bien pero al rotarlas tengo un problema con la seleccion, ya
> que
> hay zonas en las que no hay figura y se puede seleccionar y viceversa.
> Ni que decir tiene que aplico la matriz de transformación tambien a la
> región antes de consultar su propiedad Isvisible.
>
> Y ya puestos a abusar he estado mirando pero no veo por ningún sisito
> pueden formar parte de un camino imagenes e iconos y si se puede como.
>
>
>
> Gracias por vuestra ayuda.
>

Microsoft Visual C++ MVP
==>> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
>> Si una nación tiene un héroe, estará salvada.






Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Si una nación tiene un héroe, estará salvada.
Respuesta Responder a este mensaje
#4 Miguel Angel Mora
20/10/2008 - 17:06 | Informe spam
Bueno, pues existe una clase "Region" que tiene como parametros de entrada
un Path,
Region rg= new Region(Mypath)
Ahora rg tiene entre otros un atributo de tipo registro que contiene las
coordenadas x, y ancho y largo del camino en cuestion.
Una vez hecho esto saber si se ha pinchado dentro de una figura es tan
sencillo como preguntar

if(rg.Isvisible(x,y))

donde x,y son la posicion del raton

y va de fabula, el problema es que cuando roto una figura debo cometer
algún error pues no termina de ser exactamente el perimetro de mi figura, me
da la sensacion de que esta un poco desplazado, para terminar de comprobarlo
asigno la region al formulario, (al hacer esto el formulario deja de ser
cuadrado y toma la forma del dibujo) y me doy cuenta que la figura se queda
un poco abajo.

"RFOG" wrote:

Pues entonces lo que ahora no entiendo yo es tu pregunta... Si lo que
quieres es determinar si hay huecos o la forma geométrica resultante,
supongo que tendrás que irte a algoritmos geométricos que ni Win32 ni .NET
tienen...


"Miguel Angel Mora" wrote in
message news:
> Estas equivocado un path no es un conjunto de puntos, es un conjunto de
> directivas de dibujo, puedes ir añadiendo addcircle(),
> addrectangle, addline, etc.
> y posteriormente dibujar el path en la posicion x e y que te interese.
> Gracias pero no me sirve tu respuesta
>
> "RFOG" wrote:
>
>> Como no te responde nadie, lo haré, aunque no lo tengo muy claro.
>>
>> Hasta donde yo sé, un "path" es eso: una ruta de puntos, por lo tanto no
>> te
>> sirve para definir una figura con huecos etc.
>>
>> En win32 existen varios modos de coordenadas (que no sé si están en
>> .NET),
>> uno de ellos es el que se llama "coordenadas del mundo" o World
>> Coordinates
>> que te permite rotaciones, desplazamientos y deformaciones de un conjunto
>> de
>> elementos GDI... o eso creo recordar.
>>
>> Lo que IMHO debes hacer no es juntar las figuras mediante un path, sino
>> ir
>> manteniendo un conjunto de las figuras que forman la figura completa, y
>> mediante las "coordenadas del mundo" hacer las rotaciones y traslaciones
>> necesarias... o eso creo.
>>
>> "Miguel Angel Mora" wrote in
>> message news:
>> > Buenas, Dado un programa que permite a un usuario crear figuras
>> > complejas
>> > a
>> > partir de otras simples tego un problema cuando intento determinar si
>> > han
>> > sido seleccionadas. Me explico:
>> >
>> > para saber si una figura se ha seleccionado utilizo la propiedad
>> > Isvisible
>> > de la clase Region. Las figuras estan formadas por un Camino, cada vez
>> > que
>> > añado una nueva forma a la figura actualizo el camino y la regíon que
>> > cada
>> > figura tiene como propiedad. Las figuras se rotan perfectamente y se
>> > redibujan bien pero al rotarlas tengo un problema con la seleccion, ya
>> > que
>> > hay zonas en las que no hay figura y se puede seleccionar y viceversa.
>> > Ni que decir tiene que aplico la matriz de transformación tambien a la
>> > región antes de consultar su propiedad Isvisible.
>> >
>> > Y ya puestos a abusar he estado mirando pero no veo por ningún sisito
>> > pueden formar parte de un camino imagenes e iconos y si se puede como.
>> >
>> >
>> >
>> > Gracias por vuestra ayuda.
>> >
>>
>> Microsoft Visual C++ MVP
>> ==> >> Mi blog sobre programación: http://geeks.ms/blogs/rfog
>> Momentos Leves: http://momentosleves.blogspot.com/
>> Cosas mías: http://rfog.blogsome.com/
>> Libros, ciencia ficción y programación
>> > >> Si una nación tiene un héroe, estará salvada.
>>

Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
> Si una nación tiene un héroe, estará salvada.


Respuesta Responder a este mensaje
#5 RFOG
20/10/2008 - 23:01 | Informe spam
Pues ya no sé qué decirte. ¿Estás teniendo en cuenta el efecto de la
perspectiva y de la no linealidad del ancho frente al alto?


"Miguel Angel Mora" wrote in
message news:
Bueno, pues existe una clase "Region" que tiene como parametros de
entrada
un Path,
Region rg= new Region(Mypath)
Ahora rg tiene entre otros un atributo de tipo registro que contiene las
coordenadas x, y ancho y largo del camino en cuestion.
Una vez hecho esto saber si se ha pinchado dentro de una figura es tan
sencillo como preguntar

if(rg.Isvisible(x,y))

donde x,y son la posicion del raton

y va de fabula, el problema es que cuando roto una figura debo cometer
algún error pues no termina de ser exactamente el perimetro de mi figura,
me
da la sensacion de que esta un poco desplazado, para terminar de
comprobarlo
asigno la region al formulario, (al hacer esto el formulario deja de ser
cuadrado y toma la forma del dibujo) y me doy cuenta que la figura se
queda
un poco abajo.

"RFOG" wrote:

Pues entonces lo que ahora no entiendo yo es tu pregunta... Si lo que
quieres es determinar si hay huecos o la forma geométrica resultante,
supongo que tendrás que irte a algoritmos geométricos que ni Win32 ni
.NET
tienen...


"Miguel Angel Mora" wrote in
message news:
> Estas equivocado un path no es un conjunto de puntos, es un conjunto de
> directivas de dibujo, puedes ir añadiendo addcircle(),
> addrectangle, addline, etc.
> y posteriormente dibujar el path en la posicion x e y que te interese.
> Gracias pero no me sirve tu respuesta
>
> "RFOG" wrote:
>
>> Como no te responde nadie, lo haré, aunque no lo tengo muy claro.
>>
>> Hasta donde yo sé, un "path" es eso: una ruta de puntos, por lo tanto
>> no
>> te
>> sirve para definir una figura con huecos etc.
>>
>> En win32 existen varios modos de coordenadas (que no sé si están en
>> .NET),
>> uno de ellos es el que se llama "coordenadas del mundo" o World
>> Coordinates
>> que te permite rotaciones, desplazamientos y deformaciones de un
>> conjunto
>> de
>> elementos GDI... o eso creo recordar.
>>
>> Lo que IMHO debes hacer no es juntar las figuras mediante un path,
>> sino
>> ir
>> manteniendo un conjunto de las figuras que forman la figura completa,
>> y
>> mediante las "coordenadas del mundo" hacer las rotaciones y
>> traslaciones
>> necesarias... o eso creo.
>>
>> "Miguel Angel Mora" wrote
>> in
>> message news:
>> > Buenas, Dado un programa que permite a un usuario crear figuras
>> > complejas
>> > a
>> > partir de otras simples tego un problema cuando intento determinar
>> > si
>> > han
>> > sido seleccionadas. Me explico:
>> >
>> > para saber si una figura se ha seleccionado utilizo la propiedad
>> > Isvisible
>> > de la clase Region. Las figuras estan formadas por un Camino, cada
>> > vez
>> > que
>> > añado una nueva forma a la figura actualizo el camino y la regíon
>> > que
>> > cada
>> > figura tiene como propiedad. Las figuras se rotan perfectamente y se
>> > redibujan bien pero al rotarlas tengo un problema con la seleccion,
>> > ya
>> > que
>> > hay zonas en las que no hay figura y se puede seleccionar y
>> > viceversa.
>> > Ni que decir tiene que aplico la matriz de transformación tambien a
>> > la
>> > región antes de consultar su propiedad Isvisible.
>> >
>> > Y ya puestos a abusar he estado mirando pero no veo por ningún
>> > sisito
>> > pueden formar parte de un camino imagenes e iconos y si se puede
>> > como.
>> >
>> >
>> >
>> > Gracias por vuestra ayuda.
>> >
>>
>> Microsoft Visual C++ MVP
>> ==>> >> Mi blog sobre programación: http://geeks.ms/blogs/rfog
>> Momentos Leves: http://momentosleves.blogspot.com/
>> Cosas mías: http://rfog.blogsome.com/
>> Libros, ciencia ficción y programación
>> >> >> Si una nación tiene un héroe, estará salvada.
>>

Microsoft Visual C++ MVP
==>> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
>> Si una nación tiene un héroe, estará salvada.







Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Si una nación tiene un héroe, estará salvada.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida