Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Mär 29, 2024 09:26

Foren-Übersicht » Sonstiges » Community-Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 43 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: [Wiki] Übersetzungshilfe
BeitragVerfasst: Di Nov 08, 2005 19:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ich übersetz grad wieder Extensions, und da komm ich einfach ned drauf, was ein "null-terminated string" (€ und ein "null-terminated character") ist, und wie man das am besten übersetzt. Das wär eigtl alles ;) (kurz und bündig)

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 19:58 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
null terminierter String oder C-String


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 20:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ok, wenn ihr meint, dass man das so schreiben kann! War mir da ned so sicher.

btw, was bedeutet das?

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 20:02 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Oder PChar ist doch der gängige Delphi Begriff dafür.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 20:08 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Strings in C sind einfache Arrays von Char.
Du bekommst einen Pointer auf den ersten Eintrag, der letzte ist 0.
Daher Null terminierter String und auch PChar.
Unter Pascal steht im ersten Wert eines Strings die Länge drinnen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 20:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ok danke für die Erklärung. Ich nehme dann mal "null terminierter String" weil das meines Meinung nach am besten passt und anscheinend nur bei mir Verwirrung hervorruft ;)

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 21:55 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ja. Die übersetzung ist gängig. Wenn du mal C programmierst (kann ja mal passieren ;) ) dann wirst du das ständig höhren...

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 09, 2005 02:37 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Um das mal etwas technischer zu erläutern:
Prinzipiel gibt es 2 Möglichkeiten wie du einen String darstellen kannst:

1. Du sagst zu Beginn wie lang der String ist, also beispielsweise:
String ist 5 Zeichen lang, "Hallo"
hier hast du praktisch ein Byte das die länge angibt (der Wert davon ist 5) und 5 eigentliche Zeichen, also das "Hallo". Ein kleineres Problem bekommst du allerdings wenn du plötzlich Strings haben willst die länger als 255 Zeichen sind. Dann ist eine 1-Byte Längenangabe nicht mehr ausreichend und man muss sich Alternativen suchen. Die Alternativen sind hierbei ziemlich vielfältig, aber alle erfordern eine Sonderbehandlung. Und diese Sonderbehandlung ist bei OGL nicht erwünscht.

2. Du sagst der String soll ein String sein, aber ein bestimmter Wert soll den String terminieren, also sagen das der String hier zu ende ist.
Vorteil davon ist, dass du einen String haben kannst der beliebig lang ist, also auch einen der ein paar MB groß ist. Nachteil ist natürlich, dass du die Länge eines String erst ausrechnen musst, und das ein Zeichen für die Terminierung reserviert werden muss. Da man aber ohnehin keine 255 Zeichen braucht lässt sich leicht ein Terminierungszeichen finden, welches im Falle von C/C++ üblicherweise der Wert 0 ist. Also der String von vorhin würde so aussehen:
Hallo0
Wie du siehst brauchen wir hier keine Längenangabe, aber das zusätzliche "Zeichen" 0.

Soweit ich in Erinnerung habe benuzt man bei Pascal die 1. Mathode. Da die 2. Methode jedoch "allgemeiner" ist (bzw. keine Ausnahmefälle mit sich bringt) benutzt man bei OGL die 2tere. Soll jetzt aber nicht heißen, dass die 2. besser ist, die 1. Methode hat auch genug Vorteile. Im Gegenteil, bei einem größeren C++ Programm wirst du dir meistens auch eine String-Klasse schreiben welche die 1. Methode verwendet. Kommt natürlich auf den Anwendugsfall drauf an, aber vor allem für's Laden und Speichern ist 1ere Methode doch etwas besser.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 09, 2005 13:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Wow danke für die Erklärung. Damit sind alle Fragezeichen weg :)
Ich hatte nur erst vermutet, dass das null evtl mit nil zu übersetzen sei, da null ja eigentlich kein englisches Wort ist, bzw war mir das bis dahin nicht bekannt, dass es alternativen zu zero und o (ou, wie auch immer) gibt. Und an vielen Stellen, an denen in C ein null (NULL) auftaucht, verwendet man in Delphi ja ein nil.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 09, 2005 16:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Unter Delphi ist die 1. Methode ein ShortString. Der "normale" String ist eigentlich nichts anders als ein Dynamischer Array vom Typ Char. Nur halt mit der Zusaetzlichen Eigenschaft das man ihm im Quelltext Zeichenfolgen zuweisen kann und das man sie addieren kann.(oder geht das auch normalerweise mit dynamischen Arrays?)

Bei dynamischen Arrays geht Delphi uebrigens sehr Ressourcen schonend um. Wenn man einer String Variable den Wert einer andern String variable zuweist so wird diese intern nicht kopiert, sondern nur vermerkt das der String von 2 Variablen aus genutzt wird. Erst wenn man den String einer Variable abaendert wird der String tatsaechlich kopiert.

Ach ja Delphi Strings haben am Ende auch eine Null, jedoch ist die Laenge zusaetlich auch noch in einem vorzeichenlosen Integer gespeichert. (Das heist ein String darf maximal 2 hoch 32 Zeichen lang sein)

MfG
Flo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 11, 2005 11:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Man sollte vileicht noch sagen das in der Anwendung der null terminierte string langsamer ist als der von delphi bekannte string, da beim pChar eine prüfung jedes Zeichen auf #0 statt findet während string am anfang schon die länge erfährt und nur noch die folgende zeichenanzahl kopiert. Man kann auch String[0] machen um die länge zurück zu bekommen und muss nicht erst length(string) machen schreiben geht aber nicht nur readonly. Ein normaler String kann 255 Zeichen lang werden wobei dem pChar keine theoretische grenze auferlegt ist und wie schon geahnt gibs von String mehere varianten mit 1Byte,2Byte und 4Byte für die Charanzahl.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 11, 2005 18:42 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Steht schon alles im Artikel... ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 15, 2005 11:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Wärend ich mit Hilfe des Wikis angefangen habe eine Softwarebased OpenGL zu basteln fiehl mir folgendes auf
http://wiki.delphigl.com/index.php/GluPerspective
dort ist die formel zur berechnung der matrix falsch so ist es richtig hatte mich gewundert wieso meine routine ne andere matrix als die von opengl hatte.
Könnte das mal einer ändern ?

cotangent/aspect 0 0 0
0 cotangent 0 0
0 0 -(zfar+znear)/deltaZ -2*zfar*znear/deltaZ
0 0 -1 0
Code:
  1.  
  2. procedure gluPerspective(fovy, aspect, zNear, zFar: double);
  3. var
  4.   matrix:sogl_matrix;
  5.   cotangent,radians,sine,deltaZ:double;
  6. begin
  7.   radians:=fovy/2*pi/180;
  8.   deltaZ:=zFar-zNear;
  9.   sine:=sin(radians);
  10.   if (deltaZ=0) or (sine=0) or (aspect=0) then exit;
  11.   cotangent:=cos(radians)/sine;
  12.   matrix:=identitymatrix;
  13.   matrix[0].x:=cotangent/aspect;
  14.   matrix[1].y:=cotangent;
  15.   matrix[2].z:=-(zfar+znear)/deltaZ;
  16.   matrix[2].w:=-1;
  17.   matrix[3].z:=-2*zfar*znear/deltaZ;
  18.   matrix[3].w:=0;
  19.   sogl.activematrix^:=multiply(sogl.activematrix^,matrix);
  20. end;
  21.  

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 15, 2005 19:48 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Also für mich sehen die beiden Matrizen und auch deine Implementierung genau gleich aus ... denn
cotan( fovy/2 ) = cos( fovy/2 ) / sin( fovy/2 )
wo bei deiner Implementierung der Sinus verwendet wird, um auf einen Winkel von exakt 180 Grad zu prüfen. Und
-(zfar+znear)/deltaZ = -(zfar+znear)/(zfar-znear) = (zfar+znear)/(-(zfar-znear)) = (zfar+znear)/(znear-zfar)
gleiches für die 4. Spalte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 23, 2005 16:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Übersetze grad die Artikel, die zur glColorTable-Serie gehören. Da kommt immer wieder der Begriff "color lookup table". Ich hab das bisher mit Farb-Lookup-Tabelle übersetzt. Ich find aber, dass das sich grausam anhört, deswegen mal die Frage, ob jemand von euch ne Alternative weis.
btw noch ne Wissensfrage: Zu was sind diese Funktionen überhaupt da? Also mi ist schon klar, dass glColorTable eine Tabelle mit Farb-Informationen erzeugt, aber für was um alles in der Welt braucht man denn das?

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 43 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Foren-Übersicht » Sonstiges » Community-Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.062s | 17 Queries | GZIP : On ]