 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 01.09.2006, 21:26 Titel: Doppelte/Dreifache Schriftgr. in QBasic m. Hilfe eines Progs |
|
|
Hallo,
ich bin auf Zufall auf dieses Programm gestoßen.
Code: |
'**************************************************
' SMALFONT.BAS = Kleine Schrift in SCREEN 12/13
' ============
' (c) Peter Vollenweider, 26.2.2003
' (peter.vollenweider@gmx.ch)
'**************************************************
SCREEN 12 'SCREEN 13 geht genausogut
FOR x = 1 TO 14
OUT 968, x
OUT 969, x * 4
OUT 969, x * 4
OUT 969, x * 4
NEXT
DIM buffer(31, 7)
COLOR 15
ON TIMER(1) GOSUB printtime
TIMER ON
WHILE INKEY$ = ""
WEND
SCREEN 0
END
'
printtime:
LOCATE 1, 1, 0
PRINT TIME$
ERASE buffer
'
FOR y = 0 TO 15
FOR x = 0 TO 63
x. = INT(x / 2)
y. = INT(y / 2)
buffer(x., y.) = buffer(x., y.) + POINT(x, y)
NEXT x
NEXT y
'
FOR y = 0 TO 7
FOR x = 0 TO 31
PSET (x, y + 16), buffer(x, y) \ 4
NEXT x
NEXT y
RETURN
|
Ist es auch möglich die Schrift in doppelte bzw. dreifachergröße darzustellen
ich wäre euch sehr dankbar wenn ihr mir helfen könntet
kann dann auch noch zeichnen wenn dann die schriftgröße verändert wurde
mfg Manu[/code] |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 01.09.2006, 21:42 Titel: |
|
|
ich hab es mal hinbekommen, bei einem port, der mit &H3D anfängt (du hast das ja als dezimal angegeben, ich glaube, deine 3 portangabe befinden sich in der selben richtung, nämlich vga-port), auch große schrift zu erzeugen. vlt meinen wir beide sogar den selben port, da musst du nur mit den parametern etwas rumspielen  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 01.09.2006, 22:54 Titel: |
|
|
Hallo
Ich hätte da noch eine andere Methode. ASCII-Zeichen "einscannen", also die Pixeöbelegung für unterschiedliche Zeichen auslesen und speichern und dann als Grafik vergrössert ausgeben:
Code: | CLS
DIM pixel(7, 15)
SCREEN 12
LOCATE 1, 1
PRINT "A"
FOR x = 0 TO 7
FOR y = 0 TO 15
pixel(x, y) = POINT(x, y)
NEXT
NEXT
CLS
FOR groesse = 0 TO 11
gp = gp + (groesse) * 8
FOR x = 0 TO 7
xx = x * groesse + gp
FOR y = 0 TO 15
yy = y * groesse
LINE (xx, yy)-(xx + groesse, yy + groesse), pixel(x, y), BF
NEXT
NEXT |
Ist zwar etwas umständlich, aber so kannst du jede Grösse erzeugen und wenn du möchtest auch das Verhältnis der Höhe zur Breite ändern.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
A.K.

Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 01.09.2006, 23:30 Titel: |
|
|
So, habe diesen Beitrag mal als Anregung für meine Font-Lib genommen und sie um eine Size-Funktion erweitert.
Einbinden mit "qb/L ak16font.qlb"
Kurze LIB-Beschreibung:
- eigene Schriften ladbar
- Texte Pixelgenau positionierbar
- Kursiv, Fett, Unterstrichen und Durchgestrichen möglich
- Farbe einstellbar
- einstellbare Schrifttransparenz (Hintergrund wird nicht zerstört)
- läuft in allen Grafischen QB-Modi (Screen 2,8,9,12,13)
- Die Größe der Schrift ist nun per Faktor einstellbar (normal oder größer)
Ein Programmbeispiel:
Eine readme.txt ist enthalten. Dort ist die ganze Lib detailiert mit Programmbeispielen beschrieben.
"qb /l ak16font.qlb"
Code: |
SCREEN 12
CALL Set.Size (2,2) 'Faktor 2 für Breite und Höhe
CALL XPrint (100, 100, "Hallo") '"Hallo" an die Koordinate 100,100 schreiben
|
Die Bibliothek selber ist gerade mal 14KB groß.
Probier sie mal aus. Ich glaube das ist genau das was du möchtest.
Die Bibliothek:
http://www.iconsoft.de/download/ak16font.zip
Eine ganze Menge anderer Schriften die du auch benutzen kannst, findest du hier:
http://www.iconsoft.de/?show=aklib_archiv
MFG A.K. _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 02.09.2006, 14:02 Titel: |
|
|
Skilltronic hat Folgendes geschrieben: | Hallo
Ich hätte da noch eine andere Methode. ASCII-Zeichen "einscannen", also die Pixeöbelegung für unterschiedliche Zeichen auslesen und speichern und dann als Grafik vergrössert ausgeben:
Code: | CLS
DIM pixel(7, 15)
SCREEN 12
LOCATE 1, 1
PRINT "A"
FOR x = 0 TO 7
FOR y = 0 TO 15
pixel(x, y) = POINT(x, y)
NEXT
NEXT
CLS
FOR groesse = 0 TO 11
gp = gp + (groesse) * 8
FOR x = 0 TO 7
xx = x * groesse + gp
FOR y = 0 TO 15
yy = y * groesse
LINE (xx, yy)-(xx + groesse, yy + groesse), pixel(x, y), BF
NEXT
NEXT |
Ist zwar etwas umständlich, aber so kannst du jede Grösse erzeugen und wenn du möchtest auch das Verhältnis der Höhe zur Breite ändern.
Gruss
Skilltronic |
hallo skilltronic,
des Programm is sehr gut.
kannst du es vll. so umprogrammieren das mein ganzes Programm dann die große schrift verwendet und das dann auch noch der Zeichnermodus (draw , circle usw.) möglich ist
danke
mfg Manu |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 02.09.2006, 20:01 Titel: |
|
|
Hallo
Der "Zeichenmodus" geht auf jeden Fall, die Buchstaben werden ja auch als Grafik mit dem LINE-Befehl gezeichnet. Das mit dem Umschreiben für dein Programm ist aber so eine Sache. Einerseits kenne ich ja dein Programm und deine Anforderungen nicht, zum anderen habe ich keine grosse Lust, anderen ihre Programme zu schreiben. Ein Ansatz für dich wäre, ein Array anzulegen, in dem du für jedes ASCII-Zeichen die Pixelverteilung abspeicherst. Mit diesem Datensatz kannst du dann beliebige Textvariable in die Vergrösserte Grafik umwandeln. Ich stelle mir das ungefähr so vor:
Code: | DIM pixel%(127, 7, 15) 'Zuerst die Pixelbelegung
SCREEN 12 'aller ASCII-Zeichen
FOR z = 0 TO 127 'einlesen und speichern
LOCATE 1, 1
PRINT CHR$(z)
FOR x = 0 TO 7
FOR y = 0 TO 15
pixel%(z, x, y) = POINT(x, y)
NEXT
NEXT
NEXT
CLS
text$ = "Ueberschrift" 'Das ist der Text, der angezeigt werden soll
g = 4 'g ist der Grad der Vergroesserung
xpos = 60 'x-Position des grossen Textes
ypos = 20 'y-Position des grossen Textes
FOR stelle = 1 TO LEN(text$)
z = ASC(MID$(text$, stelle, 1))
FOR x = 0 TO 7
xg = xpos + (x + (stelle - 1) * 8) * g
FOR y = 0 TO 15
yg = y * g + ypos
LINE (xg, yg)-(xg + g - 1, yg + g - 1), pixel%(z, x, y), BF
NEXT
NEXT
NEXT |
Schön ist es nicht, sollte aber funktionieren.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 02.09.2006, 20:37 Titel: |
|
|
hi skilltronic oder auch die anderen
geht des auch das ich z.b. nur die überschrift größer mache
und der rest bleibt normal und das die überschrift per locate 1, x% veränderbar ist danke für eure hilfe
mfg Manu |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 02.09.2006, 20:45 Titel: |
|
|
manu hat Folgendes geschrieben: | geht des auch das ich z.b. nur die überschrift größer mache |
Natürlich geht das. Hast du denn verstanden, was mein Programm macht? Du kannst dir ja z.B. damit die Überschrift machen und den Rest, den du normal haben willst wie gewohnt mit PRINT. _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|