Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 04-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
ecfisa: has visto porque las naves salen desplazadas??? será cuestion del PARENT este?

Código PHP:
void Ship::setParentTWinControlparent )
{
  
_image->Parent parent;

Responder Con Cita
  #22  
Antiguo 04-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Snaked.

Lo siento no pude verlo, el enlace de tu mensaje dice: "El video que has solicitado no está disponible.", pero voy a revisar el código a ver si me hace lo mismo.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #23  
Antiguo 04-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Acabo de hacer una prueba,
Código PHP:
...
void __fastcall TForm1::btnStartClickTObject *Sender )
{
  
// trayectoria (linea)
  
Canvas->MoveTo(  10100 ); Canvas->LineTo240200 );

  
// nave (por la misma trayectoria )
  
Ships1 = new ShipthisPoint(10100 ), Point240200 ) );
  
s1->LoadImage "face-smile.jpg";
  
s1->Timer->Interval 10;
  
s1->Timer->Enabled  true;
}
... 
Y pareciera que la imágen sigue la línea mas o menos por el medio...


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #24  
Antiguo 04-11-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Yo creo que si puede ser el parent porque supongo que tiene un tpanel o algo y dependiendo de si el parent es el form o el panel puede variar su Top y su Left.
Responder Con Cita
  #25  
Antiguo 04-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aguml.

Siempre que dibuje sobre el lienzo del mismo padre no se altera el resultado, por ejemplo le aquí asigno un TPanel como parent:



Ahora si, como mencionaste antes, esta dibujando la trayectoria en un componente y la nave en otro, si que podría haber diferencia en las posiciones debido a la relatividad de las coordenadas...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #26  
Antiguo 05-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
jejejej.... hola ecfisa y Aguml...... aun ando a vueltas con el tema este de las "rutas"

os explico:

tengo en el form, un tImage que es el que utilizo como TABLERO donde dibujo los planetas y las rutas y la estacion espacial (Image->tablero) que esta situado en LEFT = 0; TOP = 28; WIDTH =1058; HEIGHT = 570;

encima de este timage tengo un elemento (barra) de interface donde muestra el nombre del sector y luego está los bordes de la ventana del form

entonces, teniendo en cuenta estos datos...... como tendria que poner el POINT() de las rutas?

no acabo de aclararme con esto de coordenadas relativas


he probado a poner en el parent de Ship( Image->tablero->Parent, Point(), Point()); pero parece ser el mismo resultado que poniendo THIS
Responder Con Cita
  #27  
Antiguo 05-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
mirad.... he creado un proyecto con el nucleo del dibujado

echadle un vistazo

http://www.qualinost.tk/descargas/prueba_rutas.rar
Responder Con Cita
  #28  
Antiguo 05-11-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
No puedo probar nada porque estoy recién operado y con el pie en alto pero yo diría que el fallo lo tienes justo en la línea que comentas. Le indicas que el parent es el parent del tImage con lo que en tu caso es el tform. Por lo que explicas supongo que tu form se llama Image y el TImage se llama tablero ¿no? Prueba asi:
Ship( Image->tablero, Point(), Point());
O directamente:
Ship( tablero, Point(), Point());
Responder Con Cita
  #29  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
estoy seguro que hay algo erroneo con el parent en la funcion de ecfisa porque veo esto:

Código PHP:
#include <jpeg.hpp>

const int MAX_X 1366;

class 
Ship {
private:
  
TImage*      _image;
  
TTimer*      _timer;
  
TWinControl_parent;
  
TPoint       _route[MAX_X];
  
TPoint       _start;
  
TPoint       _stop;
  
int          _inx;
  
int          _toproute;
  
int calcRoute();
  const 
TPoint &getPt( const int &ix );
  
void setParentTWinControlparent );
  
void __fastcall _timerTimer(TObject *Sender);
public:
  
ShipTWinControlparent, const TPointstart, const TPointstop);
  ~
Ship();
  
__property TWinControlParent = { read _parentwrite setParent };
  
__property TImageImage = { read _imagewrite _image };
  
__property TTimerTimer = { read _timerwrite _timer };
  
__property int TopRoute = { read _toproute };
  
__property TPoint Route[int] = { read getPt };
};

#endif 

donde veo declarada la funcion setParent(TWinControl* parent) pero no veo por ningun sitio donde la invocaria para cambiar el parent del timage

porque ademas.....en el codigo...tengo esto puesto como ha indicado Aguml lo del parent

Código PHP:
 s1 = new Shiptablero->ParentPoint(40 Form2->Image2->Picture->Graphic->Width/2,40 Form2->Image2->Picture->Graphic->Height/2), Point(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2)  );
 
s2 = new Shiptablero->ParentPoint(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2), Point(480 Form2->Image4->Picture->Graphic->Width/2100 Form2->Image4->Picture->Graphic->Height/2) );
 
s3 = new Shiptablero->ParentPoint(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2), Point(600 Form2->Image11->Picture->Graphic->Width/2350 Form2->Image11->Picture->Graphic->Height/2) ); 
indicando el parent del TImage "TABLERO" pero pese a todo creo que lo dibuja en un Canvas diferente.....creo que el del Form.....porque una de las naves se sale del TImage Tablero y se ve como "vuela" por encima del formulario Tform1 (cuando si fuese dentro del TImage Tablero, al salir de los limites del image no tendria que verse la nave no?

ecfisa.... cual puede ser el problema?

Última edición por Snaked fecha: 07-11-2016 a las 00:15:51.
Responder Con Cita
  #30  
Antiguo 07-11-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Prueba y cambia esto:
Código PHP:
 s1 = new Shiptablero->ParentPoint(40 Form2->Image2->Picture->Graphic->Width/2,40 Form2->Image2->Picture->Graphic->Height/2), Point(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2)  ); 
Por:
Código PHP:
s1 = new ShiptableroPoint(40 Form2->Image2->Picture->Graphic->Width/2,40 Form2->Image2->Picture->Graphic->Height/2), Point(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2)  ); 
Responder Con Cita
  #31  
Antiguo 07-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Snaked Ver Mensaje
estoy seguro que hay algo erroneo con el parent en la funcion de ecfisa porque veo esto:
...
donde veo declarada la funcion setParent(TWinControl* parent) pero no veo por ningun sitio donde la invocaria para cambiar el parent del timage...
El parent es asignado en el constructor:
Código:
Ship( TWinControl* parent, const TPoint& start, const TPoint& stop);
y despues lo podes cambiar invocando a la propiedad Parent:
Código:
 ...
  __property TWinControl* Parent = { read = _parent, write = setParent };
...
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #32  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
muy gracioso ecfisa. .. .jajajajaj...me parto cabronazo


Código PHP:
  for(c=0_start.x_stop.xc++, x++ ) {
    
int y _start.dy * ( _start.) / dx;
    
_route[c]._startx.x;  <---- linea que me ha hecho perder casi 1 semana
    _route
[c].y;
  } 
pero bueno, me he puesto a mirar el codigo hasta que lo he encontrado yo mismo

aqui os dejo por fin, un video de la salida correcta de las famosas "rutas"


https://youtu.be/D2vJIpDC3uI

Última edición por Snaked fecha: 07-11-2016 a las 09:58:21.
Responder Con Cita
  #33  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
Ecfisa:

ahora se me plantea otra cosa.... el dibujado de las rutas en pantalla lo tengo, pero ahora, se me plantea el interrogante de calcular el recorrido por otros SECTORES que no se ven en pantalla pero que aun asi, tendria que calcular las rutas en un lugar "aparte" que no sea visible (un vector quizas?) para que aunque no se vean en pantalla....el proceso de "navegacion" de las naves lleve su tiempo en background

Es decir si una nave sale de LA TIERRA (Sector Vega) en principio, al tener ese sector en pantalla.....vemos la nave por las rutas....bien...ahora cuando salga del sector VEGA.... como puedo hacer para que siga trazando las rutas sin mostrar nada en pantalla pero que es como si la nave siguiese trazando las rutas para que llegado un tiempo mas tarde.....cambiemos por ejemplo al SECTOR OMEGA (destino) y cuando corresponda la veamos "llegar"?

Aguml, tambien va por ti o por vosotros, los que esteis siguiendo este hilo

a ver que ideas me dais que sean elegantes y sencillas de implementar

el Quiz de la cuestión.....es que cada nave lleve una velocidad (eso lo logramos con la velocidad del TTimer incrustado en cada objeto "Ship" que nos dio ecfisa pero necesito una forma de calcular todas las trayectorias a través de los sectores galacticos y mostrar solo las naves cuando Visualicemos un SECTOR en pantalla y haya alguna "nave" pasando por las rutas de ese SECTOR

y gracias tios, me estais ayudando un monton....gracias por estar ahi

Última edición por Snaked fecha: 07-11-2016 a las 11:28:04.
Responder Con Cita
  #34  
Antiguo 07-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Snaked.

Para calcular las rutas podes usar una variante de la función movepixel del mensaje #3 :

Código PHP:
int calculateRoute( const TPointp1, const TPointp2TPointvp )
{
  
int dx p2.p1.x;
  
int dy p2.p1.y;
  
int ix 0;

  for( 
int x p1.xp2.x++ ) {
    
int y p1.dy * ( p1.) / dx;
    
vp[ix].x;
    
vp[ix].y;
    
ix++;
  }
  return 
ix;
}

// Ejemplo de uso:
...
{
  
TPoint ruta[1366];
  
int top =  calculateRoutePoint1010 ), Point500100 ),  ruta );
... 
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #35  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
entiendo, voy a probar a ver que resulta

una cosilla.... en esta linea:

Código PHP:
TPoint ruta[1366];  //porque 1366?? por el ancho maximo de la pantalla? 
y otra cosa....

Código PHP:
int top =  calculateRoutePoint1010 ), Point500100 ),  ruta ); 
entiendo que top almacena el resultado final de ix pero que es exactamente? bueno....se que es el numero de iteraciones del bucle for pero para que lo almacenas en un int?

Última edición por Snaked fecha: 07-11-2016 a las 13:59:40.
Responder Con Cita
  #36  
Antiguo 07-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

La cantidad de elementos que fueron almacenados en el arreglo "ruta".

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #37  
Antiguo 07-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Se me pasó tu primer consulta... Si, 1366 es el ancho máximo de pantalla del equipo en que estoy en este momento.
Para hacerlo portable podrías usar un arreglo dinámico, pero eso es otro tema que el que nos trae.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #38  
Antiguo 08-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
vale ecfisa.... voy a ver si avanzo algo en el juego ya que tengo mas o menos las funciones ya implementadas

Aguml, siento que estes "de baja" y te deseo que te recuperes pronto de tu operacion.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar TLabel.Canvas sobre TBitmap.Canvas @CSE1970 Gráficos 2 23-10-2013 12:46:53
Impresion linea por linea en tiquete de caja Livey Impresión 2 21-12-2010 00:21:05
uso de DLL creada con VB6 lichi OOP 0 12-09-2005 16:55:46
Como imprimir por canvas un caracter de salto de linea buitrago Impresión 3 30-08-2004 11:10:05
¿Cómo borrar un grid sin tener que ir línea a línea? Isaac Varios 2 18-02-2004 16:13:14


La franja horaria es GMT +2. Ahora son las 12:58:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi