![]() |
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 :? :? |
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 |
Re: Need Help bei Programm!!!
Hallo volkan,
herzlich willkommen in der Delphi-PRAXiS. Hier findest du unseren ![]() 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? |
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.
|
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.
|
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 |
Re: Need Help bei Programm!!!
Zitat:
|
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. |
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 |
Re: Muss einen Kompass programmieren...
Was verstehst du unter korrekt?
|
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 |
Re: Muss einen Kompass programmieren...
ZU KINZLER
korrekt mein ich, nicht so spießer die ein problem mit dem "kraftausdruck" Zitat:
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.. |
Re: Muss einen Kompass programmieren...
Hier ein Ansatz, um das auf dem Canvas des Forms zu machen:
Delphi-Quellcode:
Ich gehe mal davon aus, dass du weißt, wie man ein neues Project in Delphi erstellt ;)
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; |
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. |
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: |
Re: Muss einen Kompass programmieren...
Zitat:
:shock: |
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! |
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 |
Re: Muss einen Kompass programmieren...
Es ist nur völlig überflüssig
|
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: |
Re: Muss einen Kompass programmieren...
Ja die Paint-Methode in der du die Grafik zeichnest
|
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... :|
|
Re: Muss einen Kompass programmieren...
Ja. den die Ermittlung des Mittelpunkt reicht ja wohl noch nicht ganz :stupid:
![]() |
Re: Muss einen Kompass programmieren...
Zitat:
|
Re: Muss einen Kompass programmieren...
Du könntest dir auch Turbo Delphi Explorer runterladen und dann daheim ausprobieren.
![]() |
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. |
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. |
Re: Muss einen Kompass programmieren...
Zwar nicht unbedingt ein Kompass aber nunja, aber mir war langweilig gerade :D
Code:
//Edit: Ach huch das war ja ein BCB-Projekt, habs nimma gemerkt :wall: Naja hat er noch etwas zu tun :???:
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=Phoenix]Delphi- in C-Codes geändert. Dann liest es sich besser. Mfg, Phoenix[/edit] |
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... |
Re: Muss einen Kompass programmieren...
Delphi-Quellcode:
So.^^
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; 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 |
Re: Muss einen Kompass programmieren...
Zitat:
|
Re: Muss einen Kompass programmieren...
Zitat:
|
Re: Muss einen Kompass programmieren...
Mal nebenbei angemerkt, entspricht meiner Meinung deine Redensart weniger jemand aus der gymnasialen Oberstufe.
Delphi-Quellcode:
Jetzt musst du dir noch gedanken machen, wie du die eigentliche Koordinaten, wohin gezeichnet werden soll berechnen kannst.
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. 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:
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.
m = tan(arccos(b / c));
Bisher habe ich ja nichtmal von dir einen mathematischen Anstoß gesehen, die Lösung selber herauszubekommen. Grüße aus Dresden |
Re: Muss einen Kompass programmieren...
Zitat:
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! |
Re: Muss einen Kompass programmieren...
Zitat:
|
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!! |
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 |
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.
|
Re: Muss einen Kompass programmieren...
Ui, sowas macht ihr in Info?
Ist ja imho mehr Mathe als Info... Zitat:
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:
Btw: Würd mich mal interressieren was dein Lehrer zu dir dann sagt.:lol: (ob der 'ne Herleitung etc. haben will?)
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; |
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. |
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