Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Muss einen Kompass programmieren... (https://www.delphipraxis.net/103629-muss-einen-kompass-programmieren.html)

volcano57 18. Nov 2007 19:35


Muss einen Kompass programmieren...
 
Hi leute bin neu hier auf dem Forum.. und ich glaube es ist schicksal dass ich hier gelandet bin...

also ich hab jetz informatik klasse 12 Grundkurs.. und komm voll nich mit delphi klar... :|

auf jeden fall müssen wir ein programm schreiben, wo auf der zeichenfläche 2 kompasse erscheinen und wo die zeiger sich immer zur maus drehen, die maus bildet also egal wo sie sich grade auf der zeichenfläche befindet den Nordpol.

Liebe leute mein problem ist jetz.. ich hab wirklich keine ahnung, weiß nicht mal wie man diese klassen schreiben soll und so weiter...

ich weiß nich wie das hier abgeht aber kann mir jemand irgendwelche tipps geben.. zumindest ansätze oder sowas aufschreiben.. oder keine ahnung kennt jemand so ein programm...

scheiß info ich kanns ja nich ma abwählen.. leute bin wirklich auf euch angewiesen.. der lehrer will was sehen von mir so langsam.....

naja ich hoffe auf eure hilfe auf jeden fall und verbleibe mmit

mfg volkan :? :?

volcano57 18. Nov 2007 19:38

Re: Need Help bei Programm!!!
 
ach ja was gibtrs denn da für unterschiede zwischen der programmsprache delphi wiin 32 und delphi .net ---> :?: was heißten das..? ich hab einfach mal 32 angegeben.. aber ich hoffe ihr habt mich schon verstanden..:!

ich bitte um eure mithilfe und werd euch das auch nich vergessen... auf jeden fall würdet ihr mir gut damit helfen

mfg

MrSpock 18. Nov 2007 19:42

Re: Need Help bei Programm!!!
 
Hallo volkan,

herzlich willkommen in der Delphi-PRAXiS. Hier findest du unseren Verhaltenskodex, der beschreibt wie es bei uns so läuft.

Wir erwarten von jedem, der ein Problem hat, zunächst einmal Eigeninitiative. Wenn du dann ein konkretes Problem hast, helfen wir dir gerne. Welche Idee hast du denn bisher?

Progman 18. Nov 2007 19:43

Re: Need Help bei Programm!!!
 
hm, also ich glaube, es macht nicht viel Sinn, jemandem, der gar keine Lust zu der Sache hat, zu versuchen, was zu erklären. Und fertigen Programm-Code gibts hier eh nicht. Dadurch lernt man nix.

Phoenix 18. Nov 2007 19:45

Re: Need Help bei Programm!!!
 
Als Ergänzung zu dem, was Albert schon geschrieben hat: Damit sich die Leute auch bei einer Frage was drunter vorstellen können sollte man dem ganzen einen tauglichen Namen geben.

volcano57 18. Nov 2007 19:56

Re: Need Help bei Programm!!!
 
ja-ja jetzt haltet mir btte nicht so ne standpauke.. ich sag ja bin neu hier und bitte freundlich um eure hilfe..

also mit lust und so ob das sinn macht mir zu helfen.. also leute ich hoffe doch sehr... es geht hier um meine note...

:cry:

also da ist man mal verzweifelt und glaubt sich gerettet auf diesem forum.. und da kommen dann solche sprüche...

meine ideen sind folgende:

ich brauche
- einen kreis
- einen zeiger
- eine maus
- dann muss alles erzeugt und gelöscht werden können

und sowviel zu meinem vorwissen

UND ich möchte sicherlich keine fertigen programme oder sn scheiß, dan ha mich jemand falsch verstanden.. sowas wollt ich eh nicht von euch..

also würd mich echt über eure hilfe freuen.

mfg volkan

r_kerber 18. Nov 2007 20:03

Re: Need Help bei Programm!!!
 
Zitat:

Zitat von volcano57
oder sn scheiß,

Unterlaß bitte Deine Kraftausdrücke.

Phoenix 18. Nov 2007 20:04

Re: Need Help bei Programm!!!
 
Wenns um die Note geht sollte man sich viellicht etwas früher mit der Materie beschäftigen.

Am besten schreibst Du eine eigene Komponente. Von TPanel abgeleitet. In der Paint-Routine zeichnest Du dann den Kreis (Bresenham-Algorithmus, da wird sich hier einiges finden lassen - wahrscheinlich sogar eine komplette implementierung).

Den Pfeil zeichnest Du dann mit drei Strichen auch noch drauf. Sollte nicht so der akt sein.

Wegen der Positionierung: Es gibt auf dem Formular ein MouseOver Ereignis. Hier kannst Du die Koordinaten der Maus abfragen und den Komponenten mitteilen. Die können dann aus der eigenen Position und den Koordinaten der Maus die richtige Richtung für den Pfeil errechnen.

volcano57 18. Nov 2007 20:07

Re: Muss einen Kompass programmieren...
 
boah gibts doch nich.... und dann frag ich mich warum ich keine lust auf delphi hab...

ich dachte so auf dem forum hier wärn die leute korrekt.. und naja ich hoffe einfach mal das ist so.. ihr seid schon korrekt..

ich unterlasse meine "kraftausdrücke", danke für den hinweis :roll: ...

und hoffe auf eure hilfe ja... :(

mfg volcano

mkinzler 18. Nov 2007 20:09

Re: Muss einen Kompass programmieren...
 
Was verstehst du unter korrekt?

volcano57 18. Nov 2007 20:10

Re: Muss einen Kompass programmieren...
 
danke phoenix für die schnelle antwort auf jeden fall vielen dank.. aber ich muss mir das was du schreibst erstmal ruhig durchlesen... ich bin nicht so der delphi-experte wie du sicherlich schon gemerkt hast....

und kann das auch evtl.. jemand ein bisschen auf deutsch sozusagen schreiben.. als prosa vllt, das ich das auch ein wenig versteh..

hm naja danke nochmal

volcano57 18. Nov 2007 20:13

Re: Muss einen Kompass programmieren...
 
ZU KINZLER

korrekt mein ich, nicht so spießer die ein problem mit dem "kraftausdruck"
Zitat:

SCHEISSSSE
haben..

also jetzt mal ehrlich, als würdet ihr solche worte niee benutzen... :roll:

ok aber danke für die schnellen antworten vielen dank an alle..

Progman 18. Nov 2007 20:18

Re: Muss einen Kompass programmieren...
 
Hier ein Ansatz, um das auf dem Canvas des Forms zu machen:
Delphi-Quellcode:
var
  Form1: TForm1;
  MittelPunkt: TPoint;
  MausPunkt: TPoint;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientWidth:=600;
  ClientHeight:=600;
  MittelPunkt.X:=ClientWidth div 2;
  MittelPunkt.Y:=ClientHeight div 2;
end;
{Nun hast du einen Mittelpunkt. Dieser ist der Ausgangspunkt für alles Weitere.
Um Diesen zeichnest du einen Kreis mit einem Radius deiner Wahl (Vorschlag: 100)}
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  MausPunkt.X:=X;
  MausPunkt.Y:=Y;
{ jetzt hast du die Mouse-Koordinaten. Nun musst du den Winkel von MittelPunkt
  und MausPunkt berechnen und anhand dessen vom Kreismittelpunkt entsprechned dem
  Winkel eine Linie in der Länge des Radius (oder etwas kürzer) zeichnen. Das ist
  dann der Zeiger, der immer in Richtung Maus zeigt. }
end;
Ich gehe mal davon aus, dass du weißt, wie man ein neues Project in Delphi erstellt ;)

Namenloser 18. Nov 2007 20:20

Re: Muss einen Kompass programmieren...
 
Als kleine Ergänzung:
Mit Canvas.Ellipse kannst du einen Kreis, mit Canvas.MoveTo und Canvas.LineTo eine Linie zeichnen.

volcano57 18. Nov 2007 20:22

Re: Muss einen Kompass programmieren...
 
ok progman... das sieht schon wirklich sehr sehr gut aus für mich...

ok neues projekt und so weiter ist kein problem.. ich hoffe mal das krieg ich dann so hin...

aber ich weiß nich ihr seid richtige delphi-freaks.. machste mal eben so locker in 5min was in 1 woche nich hinkriege...

vielen dank auf jedne :kiss:

mr_emre_d 18. Nov 2007 20:24

Re: Muss einen Kompass programmieren...
 
Zitat:

....nicht so spießer die ein problem....
omg, jetzt beleidigst du noch dp-user
:shock:

volcano57 18. Nov 2007 20:25

Re: Muss einen Kompass programmieren...
 
JA danke namenlozer.. die canvas ellipse kommt mir auch bekannt vor.. ich glaube ich kenn das auch irgendwo her

ja.. so langsam stell ich doch fest, dass mir ein jahr delphi wirklich nich so viel gebracht hat.. den andren aus meinem kurs aber igendwie schon...

nein find ich aber super das leute wie ihr so sowas freiwillig macht mit delphi und so .. würd für mich nicht in frage kommen.. thx!

volcano57 18. Nov 2007 20:27

Re: Muss einen Kompass programmieren...
 
mr_emre wenn ich jemanden beleidige sieht das anders aus glaub mir...

aber ey warum macht der dann auch mich direkt so fertig als "frisch reingestolperten user"...?

ist doch kein problem für euch wenn man mal scheiße schreibt oder,,,... sry ich meinte SC****E

mkinzler 18. Nov 2007 20:29

Re: Muss einen Kompass programmieren...
 
Es ist nur völlig überflüssig

volcano57 18. Nov 2007 20:38

Re: Muss einen Kompass programmieren...
 
Also ich hab so den dummen verdacht dass wenn ich das hier eingebe, es trotzdem noch nich laufen wird... fehlt da noch etwas...?

Delphi-Quellcode:

var
  Form1: TForm1;
  MittelPunkt: TPoint;
  MausPunkt: TPoint;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientWidth:=600;
  ClientHeight:=600;
  MittelPunkt.X:=ClientWidth div 2;
  MittelPunkt.Y:=ClientHeight div 2;
end;
{Nun hast du einen Mittelpunkt. Dieser ist der Ausgangspunkt für alles Weitere.
Um Diesen zeichnest du einen Kreis mit einem Radius deiner Wahl (Vorschlag: 100)}
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  MausPunkt.X:=X;
  MausPunkt.Y:=Y;
{ jetzt hast du die Mouse-Koordinaten. Nun musst du den Winkel von MittelPunkt
  und MausPunkt berechnen und anhand dessen vom Kreismittelpunkt entsprechned dem
  Winkel eine Linie in der Länge des Radius (oder etwas kürzer) zeichnen. Das ist
  dann der Zeiger, der immer in Richtung Maus zeigt. }
end;

bitte echt um eure hilfe... ich geb euch auch gerne einen aus... :cheers:

mkinzler 18. Nov 2007 20:40

Re: Muss einen Kompass programmieren...
 
Ja die Paint-Methode in der du die Grafik zeichnest

volcano57 18. Nov 2007 20:46

Re: Muss einen Kompass programmieren...
 
mkinzler du meinst also ich muss den kreis usw. noch zeichnen ja...? ja davon abgesehen würd das programm so einigermaßen gehen.. ? hab delphi leider nicht installiert.. deswegen will ich sicher sein dass es in der schule auch klappt hoff ich mal... :|

mkinzler 18. Nov 2007 20:48

Re: Muss einen Kompass programmieren...
 
Ja. den die Ermittlung des Mittelpunkt reicht ja wohl noch nicht ganz :stupid:
http://www.dsdt.info/tipps/?id=358

grenzgaenger 18. Nov 2007 20:56

Re: Muss einen Kompass programmieren...
 
Zitat:

Zitat von volcano57
mkinzler du meinst also ich muss den kreis usw. noch zeichnen ja...? ja davon abgesehen würd das programm so einigermaßen gehen.. ? hab delphi leider nicht installiert.. deswegen will ich sicher sein dass es in der schule auch klappt hoff ich mal... :|

kannste denn da deinen lehrkörper nicht fragen, wenn es nicht ganz klappt....? :stupid:

mkinzler 18. Nov 2007 20:58

Re: Muss einen Kompass programmieren...
 
Du könntest dir auch Turbo Delphi Explorer runterladen und dann daheim ausprobieren.
www.turboexplorer.com

Phoenix 18. Nov 2007 20:58

Re: Muss einen Kompass programmieren...
 
Also erstmal: Egal ob hier jemand neu oder schon 5 Jahre dabei ist: wir Schnauzen uns nunmal nicht an. Hier in der Delphi-Praxis legen wir eben nunmal Wert auf einen gepflegten Umgang miteinander. Und wenn dann so ein Urgestein wie mkinzler darauf hinweist, sollte man sich als Jungspund sowas zu Herzen nehmen.

Und ja, im privaten Hausgebrauch benutzt jeder von uns mal den einen oder anderen Kraftausdruck. Nur hier in der DP versuchen wir sowas wo es nur möglich ist zu vermeiden.

Und wir machen niemanden fertig. Nur erwarten wir von Neuen Mitgliedern in der Community etwas Respekt den Älteren gegenüber. Schliesslich willst Du etwas von uns - und da setzen wir einfach voraus, dass das höflich, freundlich und respektvoll erfragt wird und auch gezeigt wird, dass man zumindest versucht aus unseren Posts zu lernen. Wenn man hier unfreundlich auftritt oder gar verlangt, ganze Aufgaben zu lösen, dann rennt man hier sehr schnell gegen eine ziemlich harte Wand.

Noch ein kleiner Hinweis zu den 'Verhaltensregeln' im Forum - wenn Du etwas zu Deinem letzten Post ergänzen willst und noch keinr was dazu geschrieben hast, wäre es geschickt wenn Du Deinen letzten Post ergänzt und nicht gleich noch einen dazu schreibst. Macht die ganze Sache einfach etwas übersichtlicher.

Was das Delphi und Freiwillig angeht: Es gibt nunmal Leute, die damit tatsächlich ihr Geld verdienen ;-) Viele von uns sind hauptberufliche Entwickler - und haben damit logischerweise einen gewissen Wissenvorsprung vor Schülern oder Hobbyisten. Das ist ganz natürlich und nix, wovor man Berührungsängste oder gar Ehrfurcht haben muss. Vielleicht wirst Du ja mal Chirurg oder Physiker. Das wären Sachen, die z.B. ich nie könnte ;-)

Zur Problemstellung:

Du hast ja jetzt das Formular initialisiert und Dir den Mittelpunkt gemerkt.
In der MouseMove-Routine hast Du Dir die Mauskoordinaten gemerkt.

Jetzt musst Du die Paint-Methode des Formulars überschreiben und dort eben mit den genannten Methoden a) einen Kreis um den Mittelpunkt zeichnen und b) den Winkel vom Mittelpunkt zur Mauskoordinate berechnen. Mit dem Winkel kannst Du dann Start- und Endpunkt einer Linie durch den Mittelpunkt berechnen, die dann die Pfeilrichtung angibt.

Das ist einfache Mathe und sollte nicht so schwierig sein. Stell mal die Formeln dafür auf und dann versuche, diese Formeln in Code zu packen. Weil wenn Du das hast, bist Du fast schon fertig.

volcano57 18. Nov 2007 21:06

Re: Muss einen Kompass programmieren...
 
:hi: OK Danke Phoenix

Hast mich ja jetzt ziemlich gedisst. Da bleibt echt nicht mehr viel zu sagen.

Vielen dank für die ganzen Antworten, seid schon korrekt.

Ich werd mal sehen, wie ich das morgen in der schule hinbekomme.

static_cast 19. Nov 2007 00:42

Re: Muss einen Kompass programmieren...
 
Zwar nicht unbedingt ein Kompass aber nunja, aber mir war langweilig gerade :D

Code:
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
   TPoint p = Image1->ScreenToClient(Mouse->CursorPos);

   Image1->Canvas->Brush->Color = Form1->Color;
   Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);

   Image1->Canvas->Brush->Color = clGreen;
   Image1->Canvas->Ellipse(0,0,Image1->Width,Image1->Height);
   Image1->Canvas->MoveTo(Image1->Width / 2,Image1->Height / 2);
   Image1->Canvas->LineTo(p.x,p.y);
}
//Edit: Ach huch das war ja ein BCB-Projekt, habs nimma gemerkt :wall: Naja hat er noch etwas zu tun :???:

[edit=Phoenix]Delphi- in C-Codes geändert. Dann liest es sich besser. Mfg, Phoenix[/edit]

volcano57 20. Nov 2007 18:04

Re: Muss einen Kompass programmieren...
 
hm..vom letzten beitrag hab ich eigtl nur bahnhof verstanden... aber schon faszinierend was du so aus langeweile machst...

echt.. ich weiß nich.. aber so langsam geb ich die hoffnung mit delphi wirklich auf.. bin echt ne niete darin..... :cry:

naja... das leben ist hart und unfair.. kann man wojhl nix machen, gel...

MCXSC 20. Nov 2007 18:44

Re: Muss einen Kompass programmieren...
 
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
   p: TPoint;
begin
   p := Image1.ScreenToClient(Mouse.CursorPos);
   Image1.Canvas.Brush.Color := Form1.Color;
   Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.Brush.Color := clGreen;
   Image1.Canvas.Ellipse(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.MoveTo(Round(Image1.Width / 2), Round(Image1.Height / 2));
   Image1.Canvas.LineTo(p.x, p.y);
end;
So.^^

Was du jetzt noch auf das Form klatschen musst, solltest selbst erkennen, sonst gibt es echt keine Hoffnung *sry*

Was für eine Programmiersprache kannst du denn? So wie du dich hier anstellst eher gar keine... Und Informatik gewählt, bei dem logischen Denkvermögen, was du hier an den Tag legst? cO *Sorry*

//Edit: Rechtschreibfehler wtf... cO xD
//Edit 2: Round eingefügt

DeddyH 20. Nov 2007 18:48

Re: Muss einen Kompass programmieren...
 
Zitat:

Zitat von MCXSC
Delphi-Quellcode:
Image1.Canvas.MoveTo(Image1.Width / 2, Image1.Height / 2);

Das wird nicht funktionieren. Ersetz mal die beiden / durch div.

MCXSC 20. Nov 2007 18:51

Re: Muss einen Kompass programmieren...
 
Zitat:

Zitat von DeddyH
Zitat:

Zitat von MCXSC
Delphi-Quellcode:
Image1.Canvas.MoveTo(Image1.Width / 2, Image1.Height / 2);

Das wird nicht funktionieren. Ersetz mal die beiden / durch div.

Funktionieren tat es nicht... war kein Integerwert. Hab mal 2x Round(x) eingefügt, so wie der Code jetzte da steht klappt es. :)

quendolineDD 20. Nov 2007 18:58

Re: Muss einen Kompass programmieren...
 
Mal nebenbei angemerkt, entspricht meiner Meinung deine Redensart weniger jemand aus der gymnasialen Oberstufe.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormPaint(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  MittelPunkt: TPoint;
  MausPunkt: TPoint;

implementation

uses math;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientWidth:=600;
  ClientHeight:=600;

MittelPunkt.X := ClientWidth div 2;
MittelPunkt.Y := ClientHeight div 2;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  MausPunkt.X:=X;
  MausPunkt.Y:=Y;

Form1.Refresh;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
//Zeichnen einer Ellipse mit dem Durchmesser 100px mit dem Mittelpunkt der Form als Mittelpunkt :)
Canvas.Ellipse(Mittelpunkt.X-50, Mittelpunkt.Y-50, Mittelpunkt.X+50, Mittelpunkt.Y+50);

Canvas.MoveTo(Mittelpunkt.X, Mittelpunkt.Y);
Canvas.LineTo(Mauspunkt.X, Mauspunkt.Y);
end;

end.
Jetzt musst du dir noch gedanken machen, wie du die eigentliche Koordinaten, wohin gezeichnet werden soll berechnen kannst.

Mit Canvas.LineTo(X, Y) zeichnest du zu den angegebenen Koordinaten eine Linie.

Du weißt mit Mauspunkt.X und Mauspunkt.Y wo sich die Maus gerade eben befindet.
Du kennst den Mittelpunkt mit seinen X und Y Koordinaten.

Wenn du dir dies mal aufzeichnest, dürftest du ein rechtwinkliges Dreieck erkennen, wo die Gerade zu dem Mauspunkt die Hypotenuse ist. Mit ArcCos(b / c) kannst du dir den Winkel berechnen.
Wobei b Ankathete und c Hypotenuse ist.

Dann weißt du ja, das bei einer Geraden der Anstieg m = tan(alpha) ist.

Sozusagen
Delphi-Quellcode:
m = tan(arccos(b / c));
Viel Spaß noch beim tüfteln, im allg. hast du genug Denkanstöße und Quellcode erhalten um dich selber mal ans Werk zu machen und herauszufinden, wie es funktioniert.

Bisher habe ich ja nichtmal von dir einen mathematischen Anstoß gesehen, die Lösung selber herauszubekommen.

Grüße aus Dresden

Tommy1988 20. Nov 2007 19:13

Re: Muss einen Kompass programmieren...
 
Zitat:

also ich hab jetz informatik klasse 12 Grundkurs.. und komm voll nich mit delphi klar... Neutral
Eins verstehe ich nicht. Du kannst kein Delphi, es wird aber von Dir erwartet einen Kompass zu erstellen?

Dazu sage ich nur:
Hoffendlich bekommt dein Lehrer heraus, dass du dir fast den ganzen Code hier beorfgt hast und gibt dir ne 6.

Ich habe in diesem Forum, lediglich ein anderes Unterforum, mal gelesen, dass "wir hier keine Hausaufgaben machen"

Den Standpiunkt vertrete ich allemal!

MCXSC 20. Nov 2007 19:21

Re: Muss einen Kompass programmieren...
 
Zitat:

Zitat von Tommy1988
Zitat:

also ich hab jetz informatik klasse 12 Grundkurs.. und komm voll nich mit delphi klar... Neutral
Eins verstehe ich nicht. Du kannst kein Delphi, es wird aber von Dir erwartet einen Kompass zu erstellen?

Dazu sage ich nur:
Hoffendlich bekommt dein Lehrer heraus, dass du dir fast den ganzen Code hier beorfgt hast und gibt dir ne 6.

Ich habe in diesem Forum, lediglich ein anderes Unterforum, mal gelesen, dass "wir hier keine Hausaufgaben machen"

Den Standpiunkt vertrete ich allemal!

Ich würde sagen, die Diskussion erübrigt sich... ~.~ Ich kenne keinen Lehrer, der direkt mal mit Delphi anfängt und dann einen Kompass programmieren lässt. Zumal IF12 Grundkurs... Da macht man eigentlich was anderes. :) Aber wie gesagt: Lassen wir das einfach mal so stehen. ;)

volcano57 21. Nov 2007 14:45

Re: Muss einen Kompass programmieren...
 
hm ja ok... ich bin wirklich nicht so gut in info

aber vielen dank an alle hier auf dem forum

find ich gut dass ihr so helft!!

volcano57 21. Nov 2007 15:01

Re: Muss einen Kompass programmieren...
 
ja ihr sagt einfach soundo ich gebe keine eigenen denkasntöße ud so weiter...

oder ihr keine HA macht für schüler...

und das der lehrer mir hoffentlich ne 6 gibt...

also erstens habe ich das programm leider nich auf meinem pc.. ich kann nur in der schule einmal die woche ausprobieren, weil wir nicht jede stunde praktisch am pc arbeiten

jah weiterhin möcht ich sagen dass das keine HA ist, weil wir so richtige implementierungen und so nur in der schule machen, ha wäre z.B. wie man das berechnet, dass sich der zeiger immer zur maus dreht...

-> ich glaub mit dem strahlensatz müsste es gehen, muss ich mal nächste std. schauen...

und ich werd auch keine 6 dafür bekommen wenn ich das nicht machen kann, weil der lehrer weiß dass ich das nicht so gut kann...

ich bin nämlich seid diesem schuljahr neu auf der schule.. klar ich hab schon seit der 9.klasse info und seit letztem schuljahr auch schon delphi, aber glubt mir das waren gaaaanz andre sachen so...

da haben wir gemacht:
- einfache zeichnungen auf der zeichenfläche zur einführung
- schleifen
- bedingungen (if blabala then blablabla)
- listen sortieren (bubbleSort, minSort,...)
- jah und zu guter letzt noch textadventure ein wenig

->und dann war ich schon weg von der schule,, komme auf meine jetzige in den info-kurs, freu mich schon, dass die das selbe programm machen und so..... und ich versteh trotzdem nix..

so mit vererbung usw... dann inits... real oder virtual.... hab ich alles gar nicht verstanden...

-> deswegen wollte ich auch hilfe von euch und danke ihr habt mir wirklich geholfen...


Aber ist doch blööd wenn jetzt mir dp-user so ne 6 in info wünschen.. wie ihr auch sicherlich in meinem ersten beitrag lesen könnt: ich wolllte von niemandem ne komplette HA

nur hilfen und evtll ansätze... die ihr mir auch gegeben habt.. VIELEN DANK!!!

so das ist meine ansicht der dinge. haut rein, bleibt sportlich

mkinzler 21. Nov 2007 15:14

Re: Muss einen Kompass programmieren...
 
Also ich glaube schon, das wir dir hier Denkanstösse geben. Es wurden dir auch Link zu einem Tutorial zu einem Canvas gegeben. Und dir geraten doch Delphi auf deinem Rechner zu installieren und ein Link zu einer Bezugsquelle der kostenlosen Turbo delphi Explorer Version gepostet.

mleyen 22. Nov 2007 08:39

Re: Muss einen Kompass programmieren...
 
Ui, sowas macht ihr in Info?
Ist ja imho mehr Mathe als Info...

Zitat:

Zitat von volcano57
müssen wir ein programm schreiben, wo auf der zeichenfläche 2 kompasse erscheinen und wo die zeiger sich immer zur maus drehen, die maus bildet also egal wo sie sich grade auf der zeichenfläche befindet den Nordpol.

So, hatte langeweile und wollte eh meine Kenntnisse in Kreis/Dreiecksberechnungen mal wieder auffrischen. doppelnutzen kann ja nie Schaden :spin: )
Falls etwas nicht passt, kannst du ja etwas zur Übung umschreiben. :twisted:
Kopier den Haufen mal in den Quelltext als Onmousemove-Ereignis von der Form.
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender:TObject;Shift:TShiftState;X,Y:Integer);
const radius=100; //Hier kannst du die Größe der Kreise bestimmen!
begin
  Canvas.MoveTo(round(Form1.Width/2+radius),round(Form1.Height/2));Canvas.Ellipse(round(Form1.Width/2+radius-radius),round(Form1.Height/2-radius),round(Form1.Width/2+radius+radius),round(Form1.Height/2+radius));
  if(Form1.Width/2+radius-x)<>0then
  begin
    if(Floor(Sqrt(Power(Form1.Width/2+radius+Form1.Left+4-Mouse.CursorPos.X,2)+Power(Form1.Height/2+Form1.Top+30-Mouse.CursorPos.Y,2)))>radius-1)then
    begin
      if(x<Form1.Width/2+radius)then Canvas.LineTo(round(Form1.Width/2+radius-Cos(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2+radius-x))))*0.017453277)*radius),round(Form1.Height/2-Sin(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2+radius-x))))*0.017453277)*radius))
      else if(x>=Form1.Width/2+radius)then
      begin
        if(y<Form1.Height/2)and(x=Form1.Width/2+radius)then Canvas.LineTo(round(Form1.Width/2+radius+Cos(round(RadToDeg(ArcTan((Form1.Height/2-y) / (Form1.Width/2+radius-x))))*0.017453277)*radius),round(Form1.Height/2+Sin(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2+radius-x))))*0.017453277)*radius)-radius*2)
        else Canvas.LineTo(round(Form1.Width/2+radius+Cos(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2+radius-x))))*0.017453277)*radius),round(Form1.Height/2+Sin(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2+radius-x))))*0.017453277)*radius))
      end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
    end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
  end else
  begin
    if(Floor(Sqrt(Power(Form1.Width/2+radius+Form1.Left+4-Mouse.CursorPos.X,2)+Power(Form1.Height/2+Form1.Top+30-Mouse.CursorPos.Y,2)))>radius-1)then
    begin
      if(x<Form1.Width/2+radius)then Canvas.LineTo(round(Form1.Width/2+radius-0.000001326794896*radius),round(Form1.Height/2-0.99999999999912*radius))
      else if(x>=Form1.Width/2+radius)then
      begin
        if(y<Form1.Height/2)and(x=Form1.Width/2+radius)then Canvas.LineTo(round(Form1.Width/2+radius+0.000001326794896*radius),round(Form1.Height/2+0.99999999999912*radius)-radius*2)
        else Canvas.LineTo(round(Form1.Width/2+radius+0.000001326794896*radius),round(Form1.Height/2+0.99999999999912*radius))
      end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
    end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
  end; Canvas.MoveTo(round(Form1.Width/2-radius),round(Form1.Height/2)); Canvas.Ellipse(round(Form1.Width/2-radius-radius),round(Form1.Height/2-radius),round(Form1.Width/2-radius+radius),round(Form1.Height/2+radius));
  if(Form1.Width/2-radius-x)<>0then
  begin
    if(Floor(Sqrt(Power(Form1.Width/2-radius+Form1.Left+4-Mouse.CursorPos.X,2)+Power(Form1.Height/2+Form1.Top+30-Mouse.CursorPos.Y,2)))>radius-1)then
    begin
      if(x<Form1.Width/2-radius)then Canvas.LineTo(round(Form1.Width/2-radius-Cos(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2-radius-x))))*0.017453277)*radius),round(Form1.Height/2-Sin(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2-radius-x))))*0.017453277)*radius))
      else if(x>=Form1.Width/2-radius)then
      begin
        if(y<Form1.Height/2)and(x=Form1.Width/2-radius)then Canvas.LineTo(round(Form1.Width/2-radius+Cos(round(RadToDeg(ArcTan((Form1.Height/2-y) / (Form1.Width/2-radius-x))))*0.017453277)*radius),round(Form1.Height/2+Sin(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2-radius-x))))*0.017453277)*radius)-radius*2)
        else Canvas.LineTo(round(Form1.Width/2-radius+Cos(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2-radius-x))))*0.017453277)*radius),round(Form1.Height/2+Sin(round(RadToDeg(ArcTan((Form1.Height/2-y)/(Form1.Width/2-radius-x))))*0.017453277)*radius))
      end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
    end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
  end else
  begin
    if(Floor(Sqrt(Power(Form1.Width/2-radius+Form1.Left+4-Mouse.CursorPos.X,2)+Power(Form1.Height/2+Form1.Top+30-Mouse.CursorPos.Y,2)))>radius-1)then
    begin
      if(x<Form1.Width/2-radius)then Canvas.LineTo(round(Form1.Width/2-radius-0.000001326794896*radius),round(Form1.Height/2-0.99999999999912*radius))
      else if(x>=Form1.Width/2-radius)then
      begin
        if(y<Form1.Height/2)and(x=Form1.Width/2-radius)then Canvas.LineTo(round(Form1.Width/2-radius+0.000001326794896*radius),round(Form1.Height/2+0.99999999999912*radius)-radius*2)
        else Canvas.LineTo(round(Form1.Width/2-radius+0.000001326794896*radius),round(Form1.Height/2+0.99999999999912*radius))
      end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
    end else Canvas.LineTo(Mouse.CursorPos.X-Form1.Left-4,Mouse.CursorPos.Y-Form1.Top-30);
  end;
end;
Btw: Würd mich mal interressieren was dein Lehrer zu dir dann sagt.:lol: (ob der 'ne Herleitung etc. haben will?)

volcano57 22. Nov 2007 14:00

Re: Muss einen Kompass programmieren...
 
wow das sieht ja schon.. -kompliziert?- aus...

ne herleitung? hm ich denke der will dass ich dem erklär wie ich das ganze geschafft habe...

vielen dank auf jeden fall!!!

auch wenn hier behauptet wird ich würd nix selber machen...

ihr seid mir schon wirklich eine hilfe! vielen dank!!!! :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.
Seite 1 von 2  1 2      

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