|
|
|
|
[PASCAL] dehnbares und beschriftetes Koordinatensystem |
puke
Neuling
Dabei seit: 11.02.2004
Beiträge: 14
|
|
[PASCAL] dehnbares und beschriftetes Koordinatensystem |
|
Hi Folx,
ich brauche ganz dringend eure Hilfe!
Ich versuche ein dehnbares und beschriftetes Koordinatensystem
in pascal zu erstellen, komme aber leider nicht weiter.
Bitte helft mir!
cLoWn
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
|
PROGRAM pqform;
USES crt, graph;
VAR
a, b, c, x, x1, x2, d, y, g :real;
li, re, zx, zy, bildx, bildy, i :integer;
PROCEDURE init_g;
var
g0, g1 :integer;
begin
g0 := detect;
initgraph(g0, g1, 'BGI')
END;
PROCEDURE plott;
BEGIN
line(320,1,320,480);
line(1,240,640,240);
zx := 320;
zy := 240;
moveto(zx+li*50, round(zy-10*li*li+b*li+c));
li := li*100;
re := re*100;
setcolor(red);
FOR i := li TO re DO
BEGIN
x := i/100;
y := a*x*x+b*x+c;
bildx := round(zx+x*50);
bildy := round(zy-y*10);
lineto(round(bildx), round(bildy));
END;
END;
BEGIN
clrscr;
writeln('a:'); readln(a);
writeln('b:'); readln(b);
writeln('c:'); readln(c);
writeln('Untersuchungsbereich:'); readln(li); readln(re);
IF a = 0
THEN
IF b <> 0
THEN BEGIN
x := -(c/b);
writeln('x= ', x)
END
ELSE
IF c <> 0
THEN writeln('|L = { }')
ELSE BEGIN
writeln('|L = |R');
writeln('x= ', x);
END
ELSE
d := (b*b)/(4*a*a) -(c/a);
IF d > 0
THEN BEGIN
x1 := -(b/2) + sqrt(d);
x2 := -(b/2) - sqrt(d);
writeln('x1= ', x1);
writeln('x2= ', x2);
END
ELSE
IF d = 0
THEN
BEGIN
x := -b/2;
writeln('x = ', x);
END
ELSE
writeln('|L = { }');
readln;
init_g;
plott;
readln;
closegraph;
readln;
END.
|
|
|
|
19.03.2004 17:00 |
|
|
Black Star
Der Pate [Admin]
Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr
|
|
Du definierst den Bereich, der Dargestellt werden soll, bsp-weise:
x1,x2,y1,y2.
In den Koordinaten x und y rechnest du dann deine Funktionen, etc aus.
Und immer wenn du was Plotten willst (einen Punkt, eine Linie,....) musst du es durh eine Funktion jagen, die dir den Punkt auf den Bildschirm ausrechnet.
Du brauchst also eine Funktion, die aus der Rechen-Koordinate x,y eine Bildschirmkoordinate a,b macht.
Der Bereich x1,x2,y1,y2 waere dann von mir aus global oder muesste auch immer an die Funktion uebergeben werden.
In der Funktion musst du dann
1) checken, dass der Punkt im Bereich x1,x2,y1,y2 liegt.
2) wenn x,y dein Punkt ist und 640x480 deine Aufloesung, dann waere:
a = (x2-x1)/640 * (x-x1)
b = (y2-y1)/480 * (y-y2) <-- hier bin ich mir nicht ganz sicher, man muss ueberlegen, weil das koordinatensytem andersrum ist.
Mein Pasacal ist schon etwas aelter, aber da muesste es auch Structs geben oder?
In c++ ginge sowas schoen mit Klassen.
__________________
vescere bracis meis
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Black Star: 19.03.2004 19:33.
|
|
19.03.2004 19:28 |
|
|
puke
Neuling
Dabei seit: 11.02.2004
Beiträge: 14
Themenstarter
|
|
Danke für deine antwort.
leider bin ich nicht so gut in pascal, wie würde der quelltext aussehen?
Und ist das koordinatensystem dann auch beschriftet?
|
|
20.03.2004 11:04 |
|
|
Script-Kiddie
Script-Kiddie
Dabei seit: 01.01.2004
Beiträge: 37
Herkunft: System32
|
|
@Puke vergiss Pascal die Sprache ist veraltet.
Mach lieber c/c++
|
|
20.03.2004 12:49 |
|
|
Script-Kiddie
Script-Kiddie
Dabei seit: 01.01.2004
Beiträge: 37
Herkunft: System32
|
|
Zum lernen kann man auch irgendeinen Basic Dialekt verwenden.
Dannn muss man nicht Pascal machen,denn schwerer als Bd is Pascal schon
|
|
20.03.2004 14:33 |
|
|
puke
Neuling
Dabei seit: 11.02.2004
Beiträge: 14
Themenstarter
|
|
@Script-Kiddie:
hab mir vorgenommen erstmal pascal zu lernen bevor ich c oder c++ lerne.
kann mir einer von euch bei meinem prob helfen? bin total verzweifelt *heul*
biddeee!
|
|
22.03.2004 15:07 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Dann such dir was leichteres zum Lernen als Dehnbare Koordinatensysteme
Devil
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
22.03.2004 15:39 |
|
|
Misel
Hüter des Kitkat
Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d
e
|
|
hehe, jo, zum Einstieg ist so ein variables Koordinatensystem doch recht knifflig, aber auch kein Problem der Programmiersprache und ich bin da auch Black-Star's Meinung, dass Pascal für Anfänger gut geeignet ist. Es gibt nun mal Fälle, wo alt besser als neu ist (siehe meine Signatur
). Pascal's Compiler ist sehr streng und das ist gut für einen Anfänger um strukturiertes Programmieren zu lernen, was man mit Basic nicht tut.
puke: Versuch doch erstmal das Problem genau zu durchdenken. Die Sprachelemente von Pascal scheinst Du ja schon gut zu können, aber was fehlt ist die Programmiererfahrung, die man erst mit der Zeit bekommt. In Java oder C++ oder anderen Sprachen hättest Du wahrscheinlich dasselbe Problem. Aber ich empfehle Dir den Code ein bisschen mehr einzurücken
Du hast geschrieben, dass Du nicht weiterkommst. Wo genau denn nicht?
__________________ LAUFT! Ich spiele KILLERSPIELE!
|
|
22.03.2004 19:38 |
|
|
puke
Neuling
Dabei seit: 11.02.2004
Beiträge: 14
Themenstarter
|
|
komme nur so weit wie der quelltext ist.
komme leider nicht mit dem post von Black Star zurecht(1).
|
|
23.03.2004 20:32 |
|
|
Misel
Hüter des Kitkat
Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d
e
|
|
Das nützt mir herzlich wenig und hier wird keiner für Dich das Programm schreiben.
Beschreibe doch Dein Problem einfach mal in Worten.
__________________ LAUFT! Ich spiele KILLERSPIELE!
|
|
24.03.2004 10:15 |
|
|
puke
Neuling
Dabei seit: 11.02.2004
Beiträge: 14
Themenstarter
|
|
ich möchte auf keinen fall das mir jemand das programm schreibt!
ich verstehe zb den teil nicht:
Zitat: |
Du definierst den Bereich, der Dargestellt werden soll, bsp-weise:
x1,x2,y1,y2.
In der Funktion musst du dann
1) checken, dass der Punkt im Bereich x1,x2,y1,y2 liegt.
2) wenn x,y dein Punkt ist und 640x480 deine Aufloesung, dann waere:
a = (x2-x1)/640 * (x-x1)
b = (y2-y1)/480 * (y-y2) <-- hier bin ich mir nicht ganz sicher, man muss ueberlegen, weil das koordinatensytem andersrum ist.
|
|
|
25.03.2004 16:23 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Dann beschäftige dich mal mit Koordinatensystemen.
Du solltest schon wissen was du schreiben willst, und
mit den Algorithmen dahinter vertraut sein.
Devil
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
25.03.2004 16:27 |
|
|
puke
Neuling
Dabei seit: 11.02.2004
Beiträge: 14
Themenstarter
|
|
Zitat: |
Dann beschäftige dich mal mit Koordinatensystemen.
Du solltest schon wissen was du schreiben willst, und
mit den Algorithmen dahinter vertraut sein.
|
1. Habe mich damit beschäftigt, bin aber leider nicht weiter gekommen.
Deswegen habe ich hier gepostet.
2. Welche Algorythmen meinst du?
|
|
25.03.2004 19:31 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Zitat: |
Original von puke
Zitat: |
Dann beschäftige dich mal mit Koordinatensystemen.
Du solltest schon wissen was du schreiben willst, und
mit den Algorithmen dahinter vertraut sein.
|
1. Habe mich damit beschäftigt, bin aber leider nicht weiter gekommen.
Deswegen habe ich hier gepostet.
2. Welche Algorythmen meinst du? |
Die von Black Star
Vielleicht kann er sie ja mal eingehender erklären ...
Devil
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
25.03.2004 19:57 |
|
|
puke
Neuling
Dabei seit: 11.02.2004
Beiträge: 14
Themenstarter
|
|
hab das jetzt verstanden thx!
aba wie kann ich
Dein virtueles Koordinatensystem geht von mir aus von -2 bis 2 auf der x-Achse und von -1 bis 1 auf der y-Achse. Wenn du jetzt dadrauf den Punkt (1,1) darstellen willst, brauchst du eine Funktion, die virtuellen Koordinaten in echte Bildschirmkoordinaten umrechnet.
das machen? gibts da spezielle cmds für?
|
|
28.03.2004 16:06 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Ich zweifle daran. Die Funktion aber selbst zu schreiben dürfte mit einfachen mathematischen Kenntnissen nicht das Problem darstellen
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
28.03.2004 17:03 |
|
|
|
|
|
|