AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [Help!]Simulation eines Doppelschiebers
Thema durchsuchen
Ansicht
Themen-Optionen

[Help!]Simulation eines Doppelschiebers

Offene Frage von "TU-student"
Ein Thema von TU-student · begonnen am 7. Jun 2006 · letzter Beitrag vom 10. Jun 2006
 
TU-student

Registriert seit: 7. Jun 2006
4 Beiträge
 
#1

[Help!]Simulation eines Doppelschiebers

  Alt 7. Jun 2006, 16:25
Hallo, auf der suche im Web um etwas Hilfe für meinen Info-Beleg zu bekommen bin ich auf euer schönes Forum gestoßen.
Ich hatte noch nie was mit Programmieren zu tun und wurde dieses Semester in info quasi ins kalte Wasser geworfen.
Ich hab ne Aufgabe bekommen die ich mit Delphi(7) im Selbststudium zu Hause lösen soll.
Naja, soweit so gut.
Ich hab die Aufgabenstellung mal angehangen. Und soweit bin ich bis jetzt:

Delphi-Quellcode:
unit info2;

interface

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

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    laenge: TEdit;
    abstand: TEdit;
    Reset: TButton;
    procedure PaintBox1Click(Sender: TObject);
    procedure laengeChange(Sender: TObject);
    procedure abstandChange(Sender: TObject);
    procedure ResetClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


  laenge1:integer;
  abstand1:integer;

  PunktA : array[0..600] of record
  x,y:integer ;
  end;
  PunktB : array[0..600] of record
  x,y:integer ;
  end;
  Pixel : array[0..600] of record
  x,y:integer;
  end;
implementation

{$R *.dfm}

procedure TForm1.laengeChange(Sender: TObject);

begin
  laenge1:=strtoint(laenge.Text);
end;

procedure TForm1.abstandChange(Sender: TObject);
begin
  abstand1:=strtoint(abstand.Text);
end;

procedure TForm1.PaintBox1Click(Sender: TObject);
var
  laufvar:integer;


begin
  with paintbox1.Canvas do begin

    pen.color:=(clblack);
    moveto(20,580);
    lineto(20,20);
    moveto(20,580);
    lineto(580,580);

    textout(580,585,'x');
    textout(10,10,'y');
    laufvar:=0;
    PunktA[0].x:=20; //fester Wert
    PunktA[0].y:=580-laenge1;
    PunktB[0].x:=20;
    PunktB[0].y:=580; //ferster Wert
    Pixel[0].x:=20;
    Pixel[0].y:=580-laenge1+abstand1;
    repeat
        inc(laufvar,1);
        PunktA[laufvar].y:=PunktA[laufvar-1].y+1;
        PunktA[laufvar].x:=20;
        PunktB[laufvar].x:=20+round(sqrt(sqr(laenge1)-(sqr(580-PunktA[laufvar].y))));
        PunktB[laufvar].y:=580;



        Pixel[laufvar].x:=PunktA[laufvar].x+round((abstand1/laenge1)*(PunktB[laufvar].x-PunktA[laufvar].x));
        Pixel[laufvar].y:=PunktA[laufvar].y+round((abstand1/laenge1)*(PunktB[laufvar].y-PunktA[laufvar].y));

        Pixels[Pixel[laufvar].x,Pixel[laufvar].y]:=clblack;
        
       moveto(Pixel[laufvar].x,Pixel[laufvar].y);
       lineto(Pixel[laufvar-1].x,Pixel[laufvar-1].y);

    until PunktA[laufvar].y>579;



end;
end;




procedure TForm1.ResetClick(Sender: TObject);
var laufvar:integer;
begin

    with paintbox1.Canvas do begin

     pen.color:=(clbtnface);
    laufvar:=0;
    PunktA[0].x:=20; //fester Wert
    PunktA[0].y:=580-laenge1;
    PunktB[0].x:=20;
    PunktB[0].y:=580; //ferster Wert

    repeat
        inc(laufvar,1);
        PunktA[laufvar].y:=PunktA[laufvar-1].y+1;
        PunktA[laufvar].x:=20;
        PunktB[laufvar].x:=20+round(sqrt(sqr(laenge1)-(sqr(580-PunktA[laufvar].y))));
        PunktB[laufvar].y:=580;
        moveto(20,PunktA[laufvar].y);
        lineto(PunktB[laufvar].x,580);
    until PunktA[laufvar].y=580;
     pen.color:=(clblack);
    moveto(20,580);
    lineto(20,20);
    moveto(20,580);
    lineto(580,580);

    textout(580,585,'x');
    textout(10,10,'y');
  end;
 end;
end.
also die zu berechnende Bahngleichung des Punktes wird bei mir ausgegeben, aber mehr auch nicht...
wie ich die Schieberstange Anzeige weis ich bereits, aber nicht wie ich es realiesieren kann das nicht alles
aufeinmal berechnet und dargestellt wird. Man sollte es ja schon mit dem menschl. Auge verfolgen können wie sich die Stange bewegt und der Punkt die Kurve zeichnet.
Ich hoffe ihr könnt mir dabei helfen.
Angehängte Grafiken
Dateityp: jpg untitled-1_133.jpg (100,1 KB, 88x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz