Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.677
Poder: 0
coso Va por buen camino
Graficas 3D

Un ejemplo sencillo aunque vistoso para graficar en 3D

Código Delphi [-]
unit graf3d;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure DrawLine(x,y,z : integer);
    function  Cl(z : integer; mx : integer) : TColor;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

uses math;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
        x,y,z : integer;
begin
        doublebuffered := true;
        z := 1;
        for y := 400 downto -400 do
        for x := 600 downto -600 do
        begin
                try
                z := Round(150*cos(PI*x/100)*sin(PI*(y)/200));
//                z := Round(150*cos(PI*(x*x + y*y)/25000));
                z := Round(100*cos((x + y - z)/50));
//                z := Round(sin(x*y*z)*(x + y + z)/5);
//                z := Round(x*y*z);
//                z := Round(x*y/z);
//                z := y + z;
                except
                z := 1;
                end;
                DrawLine(x,y,z);
                Application.ProcessMessages;
        end;
end;

procedure TForm1.DrawLine(x,y,z : integer);
var
        cx,cy : integer;
        i,j   : integer;
begin
        cx := Width div 2;
        cy := Height div 2;

        i := x - Round(-0.75*y) + cx;
        j := cy - y;

        Canvas.Pen.Color := Cl(z,100);
        Canvas.MoveTo(i,j);
        Canvas.LineTo(i,j-z)
end;

function TForm1.Cl(z : integer; mx : integer) : TColor;
begin
        if z > 0 then
        Cl := TColor(Round($FF*z/mx)*$000101)
        else
        Cl := TColor(Round($FF*-z/mx)*$010000);
end;

end.
Responder Con Cita
  #2  
Antiguo 27-10-2008
Avatar de Neftali
Neftali Neftali is offline
-Germán Estévez-
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 15.389
Poder: 10
Neftali Va camino a la famaNeftali Va camino a la fama
¡¡Espectacular!!

;-D
Responder Con Cita
  #3  
Antiguo 27-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.677
Poder: 0
coso Va por buen camino
:D gracias, gracias... ya se que no es para tanto :D
Responder Con Cita
  #4  
Antiguo 01-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.598
Poder: 19
Delphius Va camino a la fama
Coso, ¿Donde tenías guardado ese impresionante efecto? Está bastante moderno XD
Lástima los colores, si fueran los colores de River Plate estaría mejor XD
Responder Con Cita
  #5  
Antiguo 01-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.677
Poder: 0
coso Va por buen camino
Pues...alguien pregunto alguna vez y desarrolle el codigo
(http://www.clubdelphi.com/foros/showthread.php?t=57478&highlight=graficar) y me acabe entreteniendo un poco mas. Me alegro que os guste. A la que pueda pongo otro.
Responder Con Cita
  #6  
Antiguo 15-11-2008
Avatar de Yasnet
Yasnet Yasnet is offline
Miembro
 
Registrado: oct 2008
Ubicación: Colima
Posts: 30
Poder: 0
Yasnet Va por buen camino
Hola.
Cuando probé este ejemplo me funcionó correctamente, pero al cambiar el valor de "150" a "100" en esta línea del evento onclick del botón, mi antivirus me detectó un troyano:

z := Round(150*cos(PI*x/100)*sin(PI*(y)/200));


Lo volví a cambiar a 150 y volvió a funcionar, luego lo volví a cambiar a 100 y me volvió a detectar el troyano :S
¿Alguien me podría decir a que se puede deber?

Gracias.
Responder Con Cita
  #7  
Antiguo 15-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.677
Poder: 0
coso Va por buen camino
Hola Yasnet,
usas Avast? se ve que este antivirus ve virus por todos lados. Busca en el foro para como enviar el error a Avast. Saludos.
Responder Con Cita
  #8  
Antiguo 17-11-2008
Avatar de Yasnet
Yasnet Yasnet is offline
Miembro
 
Registrado: oct 2008
Ubicación: Colima
Posts: 30
Poder: 0
Yasnet Va por buen camino
No uso Avast, uso Kaspersky Internet Security 2009
xD
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 07:18:37.


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