You are not logged in.

wcf.regNote.message

Lila

Beginner

  • "Lila" started this thread

Posts: 22

  • Send private message

1

Thursday, July 19th 2007, 9:01am

Fonts metrics auslesen

Ich weiß nicht, ob ich hier im Coderboard richtig bin mit meiner Frage, da meine komsichen Fragen hier sowieso eher selten beantwortet werden können.

Also grundlagen und so braucht ihr mir jetzt nicht weiter beizubringen :)

Mein Problem:

ich habe ne *.TTF Datei.
z.B. ARIAL.TTF

Und hätte jetzt gerne die Werte der einzelnen Buchstaben.

Also wie ist ein A aufgebaut, wie ein B etz.

Das ist für mich wichtig um diese Schriften dann in einer 3D-Umgebung erzeugen zu können, weshalb ich halt wirklich die Skalierungen und so aus diesen Dateien brauche.

Vielen Dank

Prometheus

Administrator

Posts: 3,278

  • Send private message

2

Friday, July 20th 2007, 5:59pm

Ich stehe ein wenig auf dem Schlauch und verstehe nicht so ganz was Du meinst. Willst Du quasie die Vectoren der Schrift haben um diese in einer 3D Anwendung nutzen zu können oder was genau möchtest Du machen? Soweit ich weiß geht das nicht das man aus True Type Fonts die Vectoren ließt. Mann kann lediglich anhand der Schriftart dann eine Vectorentabelle erzeugen.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Lila

Beginner

  • "Lila" started this thread

Posts: 22

  • Send private message

3

Monday, July 23rd 2007, 9:41am

hm...

und genau so mache ich das jetzt. :)

hatte einen interessanten Artikel bei Active VB gefunden über

Public Declare Function GetGlyphOutline Lib "gdi32" Alias "GetGlyphOutlineA" _
(ByVal hdc As Long, ByVal uChar As Long, _
ByVal fuFormat As Long, lpgm As GLYPHMETRICS, _
ByVal cbBuffer As Long, lpBuffer As Any, lpmat2 As MAT2) As Long

anhand dessen ich mir die Funktion so basteln kann wie ich sie benötige.

Und ja, mein Ziel ist es zu jeder TrueType Schriftart die entsprechenden Vektoren zu haben, um diese Schrift im 3D abzubilden.

aber freut mich, dass Du meine Frage so schnell und auch richtig beantwortet hast.

Also: Tabelle wird jetzt aus den Bytes eines jeden Punktes erstellt um die Splines im 3D genau so, wie in den TTF's hinterlegt abbilden zu können.

Prometheus

Administrator

Posts: 3,278

  • Send private message

4

Monday, July 23rd 2007, 6:12pm

Wäre es dann nicht besser anstatt mit hunderten einzelner Vectoren das ganze in Polygone zu rechnen? Mag sein das ich jetzt nen Denkfehler habe aber wenn Du z.B. eine Schrift sich drehen lassen willst muss die Berechnung mit einer Fehlertolleranz von annähernd 0 laufen damit Du kein Rucken in den einzelnen Frames hast. Mit Polygonen würde das nicht passieren meiner Meinung nach. Ganz davon abgesehen das Du bei Polygonen wesentlich weniger Daten hast als bei Vectoren oder?
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Lila

Beginner

  • "Lila" started this thread

Posts: 22

  • Send private message

5

Tuesday, July 24th 2007, 8:38am

Da hast du völlig Recht, danke für den Tipp. :)

Da das Tool aber im CAD Bereich arbeitet und meine Schnittstelle dies nicht zulässt, gehe ich lieber über Splines, was wesentlich einfacher ist und nicht zu hunderten Vektoren führt. :)

Vielleicht ist das auch schon so eine Part Polygonlinie, da sie ja auch Polyline heißt...

Keine Ahnung, bin da auch nicht so bewandert drin. Also ich gehe über Splines, so wie sie auch im TTF dann vorliegen und sich dann skalieren und drehen lassen. So muss ich sie nachdem ich sie ausgelesen habe auch nicht mehr weiter umrechnen, da ich sie so habe, wie sie auch angedacht sind vom Erfinder des TTF.

Polygone sind meiner Meinung nach einzelne 3D-Punkte...

Prometheus

Administrator

Posts: 3,278

  • Send private message

6

Tuesday, July 24th 2007, 10:50am

Ein Polygon sind keine einzelnen Punkte im drei dimensionalen Raum. Ein Würfel z.B. kann aus 6 Polygonen bestehen oder aus mehreren Tausend. Je feiner die Oberflächenstruktur sein soll desto mehr Polygone werden gebraucht. Willst Du z.B. einen Kopf mit Haaren darstellen und jedes einzelne Haar soll realistich wirken dann besteht jedes Haar auf mehreren Polygonen. Du speicherst bei Polygonen also nur die Fläche und nicht jeden einzelnen Punkt. Bewegt sich das Polygon so ist die Strecke zwischen den einzelnen Eckpunkten immer festgelegt. Das ist vergleichbar wenn Du einzelne Würfel drehen möchtest oder einen Stab der Stab ist fest und kann sich beim Drehen nicht verschieben.

Weiß auch nicht wie ich das besser erklären soll ich bin auch kein Grafik Ass aber ich hatte mir das mal angeschaut vor einiger Zeit.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Lila

Beginner

  • "Lila" started this thread

Posts: 22

  • Send private message

7

Wednesday, January 30th 2008, 10:00am

Also die Font's als Polylines zu errechnen/auszulesen ist mit der API GetGlyphOutline nun kein Problem mehr.

Mein nächstes Problem ist nun, dass ich mit der Putline-Funktion nur due Outlineschriften (TrueType) auslesen kann. Ich benötige aber Stroke-Fonts, also Metafonts oder ähnliches, einen Schrifttyp, bei dem die Gylphen nur durch Striche ohne Füll-Operationen erstellt werden. Die Schrift Modern wäre das bekannteste Beispiel dafür.

Hat da jemand eine Idee, wie man die Daten aus der Modern-Schrift im VB auslesen kann?

wcf.user.socialbookmarks.titel