FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Conversion de tipos
Estoy intentando representar la funcion 'sin' en el canvas y al compilar se me produce un error que me dice algo así como 'incompatible types extended e integer'. Lo que escribo es lo siguiente: Canvas.LineTo(f,sin(f)); Que solucion me ofreceis? Hay algun lugar en el mundo donde pueda ver yo una lista de todas las funciones de conversion (IntToStr, FloatToStr, ...) ?
Gracias. |
#2
|
||||
|
||||
la función sin(f) devuelve un valor extended (de coma flotante y mucha, mucha, mucha precision).
El método LineTo del canvas, espera una posición x, y que deben ser enteros. Pascal hace muchas veces la conversión automática de tipos, pero no en el caso de un número de coma floatante a un entero. Lo que procede es decidir cómo queres tratar ese número, (tuncarlo, redondearlo, etc) y actuar en consecuencia. dado que el seno de x siempre será un valor entre 0 y 1, creo que tanto al truncarlo como al redondearlo vas a obtener una gráfica de líneas rectas discontinuas ubicadas en -1, 0 y 1 pixels del eje y=0. De cualquier forma, las funciones correspondientes son round y trunc. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
para sacar una gráfica de la función seno necesitas escalarla al "papel"
prueba con Canvas.LineTo(round(f*escalaX),round(sin(f)*escalaY)) y puedes "jugar" en runtime con los valores de escala.
__________________
todo el mundo debe creer en algo... yo creo que voy a tomarme otra copa. |
#4
|
|||
|
|||
Muchas gracias a todos.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|