Carattere "Wire" (monodimensionale)


17

Tutti i caratteri di cui ho mai sentito parlare sono bidimensionali : ogni glifo è sostanzialmente una regione bidimensionale (un contorno chiuso o alcuni contorni chiusi), che il software o la stampante in qualche modo accarezza o riempie a seconda delle istruzioni fornite dall'utente. Vorrei sapere se esistono caratteri unidimensionali , in cui i glifi sono descritti proprio come raccolte di segmenti (che il software può tracciare ma non necessariamente riempire), non di regioni.

In altre parole (o meglio, nelle immagini), ciò che mi piacerebbe avere è la cosa a sinistra invece di quella a destra nella foto qui sotto. Esiste?

Da una lettera bidimensionale a una monodimensionale

(scusatemi per l'immagine, so che è davvero brutto; l'ho fatto rapidamente)


Forse dobbiamo rispondere a graphicdesign.stackexchange.com/questions/64626/… prima di poter davvero rispondere alla tua domanda
Ryan

Qual è l'applicazione desiderata per il carattere? Non riesco a vedere alcun uso in un carattere a tratto singolo per la progettazione, quindi presumo che lo desideri per un progetto o un'incisione. Su quale programma intendi utilizzare il carattere?
DavidC il

5
Ci sono ancora due dimensioni, non c'è proprio dentro: P
Zach Saucier,

8
La cosa più vicina a un carattere monodimensionale sarebbe un codice a barre.
Gerald Schneider,

Proprio come un'idea di un'applicazione, ho scritto una demo di Raspberry Pi per tracciare percorsi di un SVG su un oscilloscopio XY - questo sarebbe stato perfetto per questo. Certamente questo è un mezzo insolito (come lo è il pen-plotter su cui intendo utilizzarlo in seguito).
Chris H,

Risposte:


23

Nei plotter, si chiama "carattere tratto", " carattere riga singola ", "carattere incisione", "carattere carattere tecnico" o semplicemente "carattere plotter".

Un plotter traccia le immagini sulla carta usando una penna. Non può riempire le immagini se non accarezzandole ripetutamente a meno di una larghezza della penna. Quindi i caratteri progettati per l'uso con i plotter conterranno glifi con un tratto ("simplex"), due tratti più o meno paralleli ("duplex") o tre tratti ("triplex"). I caratteri con più tratti richiedono più tempo per disegnare, ma consentono una maggiore variazione della larghezza del tratto all'interno di un glifo. L'uso di una penna troppo stretta per un glifo di una determinata dimensione causerà degli spazi visibili tra i tratti.

Un esempio di un font prevalentemente simplex è Hershey Vector Font . È a segno @, parentesi, parentesi []graffe {}e tilde ~sono duplex.

Glifi nel carattere vettoriale di Hershey

Se hai visto " lavagna in grassetto ", si tratta di un carattere with con la larghezza della penna inferiore alla distanza tra i tratti.

BOLD in un carattere serif duplex

Le librerie di imaging della vecchia scuola supportavano i caratteri di tratto in modo molto simile a un plotter. Durante il rendering del testo, un'applicazione imposta la larghezza e il colore del tratto prima di disegnare il testo, proprio come fa prima di disegnare una linea. Ciò è analogo alla selezione di una penna su un plotter.

Ma le moderne librerie di imaging raster utilizzano caratteri OpenType, che contengono contorni TrueType o CFF (PostScript Type 2). I caratteri OpenType che simulano i caratteri di tratto contengono invece il contorno di un tratto con una certa larghezza di linea. Questa operazione di accarezzamento può essere invertita impostando il contorno del glifo con una distanza di mezzo tratto, una sorta di inverso di grassetto algoritmico.


Bingo! Esistono ma sono piuttosto inutili se non utilizzati per applicazioni BluePrints, incisione o Laser. Progetta app come Adobe, Corel, ecc. Non riesci nemmeno a renderle, quindi non sono molto utili con cui progettare.
DavidC il

@DavidC: su piattaforme grafiche che possono applicare trasformazioni separatamente alla penna da disegno indipendentemente e al carattere, i caratteri stick possono funzionare bene se si usa una penna ellittica molto sottile e si applica una trasformazione pura (dando l'aspetto di una penna caligrafica). In questo modo sembra funzionare meglio con un tipo di carattere quasi stick che con un carattere che ha una larghezza di tratto normale.
supercat il

10

La maggior parte delle applicazioni di ingegneria supporta font con solo linee e spessore dei materiali di consumo. Come molte macchine per incidere e fresare. Alcuni caratteri esistono anche se non funzionano molto bene nei software moderni (se non del tutto).

Questo è il problema: i motori dei font sono regrediti da quando abbiamo deprecato PostScript. Spiacente, non soluzioni facili. Quindi uno potrebbe avere tutti i tipi di chicche nel corso della giornata che non è più possibile sulla maggior parte dei computer. Quasi nessuna app lo supporta, anche se presente non funzionerà nemmeno in svg poiché le definizioni dei caratteri svg sono state deprecate dai browser.

Il problema è che non esiste un formato universale per tali caratteri. E i caratteri stessi non funzioneranno correttamente in molti casi. Le app normali le tratteranno in modo strano. Vedere:

  • Un'altra domanda sull'argomento star-trek-interior-placche in cui è possibile trovare un carattere come questo che potrebbe funzionare su alcune applicazioni.

Jongware ha realizzato uno script chiamato monoline text drawing per Illustrator, ad esempio puoi ottenerlo qui:

È possibile creare i propri caratteri di questo tipo in PostScript utilizzando i caratteri di tipo 3 (ma il supporto non è più ampio *, sebbene Illustrator possa utilizzarli in alcune circostanze). Tuttavia, il supporto nelle app di progettazione è scarso. Ma in realtà lo uso tutto il giorno quando faccio ostScript. Ecco un esempio (carattere per uso speciale modificato solo   per questa demo):

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 200 40
%%Title: Demo type 3 font
%%Creator: Janne Ojala
%%CreationDate:  2015-12-23
%%EndComments

% set stroking characteristics
5 setlinewidth 
1 setlinecap
1 setlinejoin

% lets define the font
10 dict dup begin
  /FontType 3 def
  /FontMatrix [.01 0 0 .01 0 0] def
  /FontBBox [-2 0 52 102] def

  /Encoding 256 array def
  0 1 255 {Encoding exch /.notdef put} for 

  Encoding
    dup (L) 0 get /L put
    dup (a) 0 get /a put
        (b) 0 get /b put

  /Metrics 4 dict def
  Metrics begin
    /.notdef 30 def
    /L 65 def
    /a 65 def
    /b 55 def
  end

  /BBox 4 dict def
  BBox begin
    /.notdef [0 0 0 0] def
    /L [0 0 75 100] def
    /a [25 0 75 100] def
    /b [25 0 65 100]  def
  end

  /CharacterDefs 4 dict def
  CharacterDefs begin
    /.notdef { } def

    /L
      { newpath
        0 100 moveto
        0 0 lineto
        50 0 lineto
        stroke
      } def 
    /a
      { newpath
        25 25 25 0 360 arc 
        50 45 moveto 
        50 0 lineto
        stroke
      } def
    /b
      { newpath
        0 100  moveto
        0 0 lineto
        40 0 40 50 17.5 arct
        40 50 0 50 17.5 arct
        0 50  lineto
        stroke
      } def
    end

  /BuildChar
    { 0 begin

        /char exch def
        /fontdict exch def

        /charname fontdict /Encoding get char get def
        fontdict begin
          Metrics charname get 0
          BBox charname get aload pop
              setcachedevice

          CharacterDefs charname get exec
        end
      end
    } def
  /BuildChar load 0 3 dict put
  /UniqueID 1 def
end

/SpecialUseOnly exch definefont pop
/special /SpecialUseOnly findfont 20 scalefont def

special setfont 

10 10 moveto

%write some text
(Lab baa baa abL) show

%%EOF

Per usarlo basta inserirlo in un file di testo con una desinenza EPS e trascinarlo in Illustrator o Word. assicurarsi che non ci siano righe vuote prima dell'inizio. Puoi modificare il testo cambiando ciò che è dentro le parentesi all'estremità del modulo a 3 righe. L'avvertenza qui è che ho solo definito i caratteri 'L' 'a' e 'b'.

Anteprima

Immagine 1 : anteprima del programma di font.

* Quindi questo era facilmente possibile tra la fine degli anni '80 e la metà degli anni '90, ma non oggi. Il supporto è stato rimosso per lo più alcuni sofà adobe hanno ancora questo.


1
Eppure, anche la mia sceneggiatura non può farlo funzionare senza alcun spessore: devi comunque impostare uno spessore "a" sulle linee che disegni. Ma, garantito, puoi impostarlo su qualsiasi valore ti piaccia, a differenza dei caratteri di contorno che hanno uno spessore "predefinito".
usr2564301,

2
Una nota a margine, tuttavia, i tagliatori laser, le macchine cnc e le app cad funzioneranno senza spessore di linea poiché lo spessore per loro è solo un artefatto della post elaborazione.
joojaa,

2
Va bene e dandy, ma non è un font. Ho controllato più definizioni di font e devo ancora trovarne nessuna che non includa spessore / larghezza come parte della definizione. In Graphic Design, questo non è Font da qualsiasi cosa abbia trovato. Anche @Jongware e riconosci che ci deve essere un certo spessore perché funzioni. Direi (e ogni definizione che ho trovato concorda) che non è un carattere fino a quando non si verifica. Tuttavia, in pratica questo potrebbe benissimo essere ciò che l'OP sta cercando se stanno solo cercando di tracciare punti :) Potrebbe voler guardare Corel Draw, so che spesso i signori lo usano.
Ryan

1
Inoltre, non è ancora unidimensionale, come richiesto nella domanda. Ma poi direi che un carattere reale, monodimensionale è impossibile, perché una dimensione ti limiterà a una linea retta, beh, in una dimensione. Puoi fare io e due senza due dimensioni, ma non molto altro.
Janus Bahs Jacquet,

3
@Ryan: bene e dandy può essere, ma la linea di fondo è che possono esistere caratteri solo tratto ma non sono supportati dalle attuali tecnologie dei caratteri tradizionali.
usr2564301,

8

Metafont è un linguaggio di descrizione utilizzato per definire i caratteri vettoriali.

A differenza dei formati di carattere contorno più comuni (come TrueType o PostScript Type 1), un carattere Metafont è costituito principalmente da tratti con "penne" a larghezza finita, insieme a regioni piene. Pertanto, anziché descrivere direttamente il contorno del glifo, un file Metafont descrive i percorsi della penna.

Quello che descrivi potrebbe essere implementato come un font Metafont con una larghezza della penna costante.


6

Un altro termine per ciò che stai cercando è un "carattere carattere": ne esiste un set gratuito di 9 che ho usato per l'incisione CNC e laser su http://www.mrrace.com/CamBam_Fonts/

Si noti che questi caratteri tendono a apparire male sullo schermo, con aree chiuse che appaiono spesso solide. Questo perché sono caratteri di profilo tecnicamente non validi: ogni carattere è necessariamente costituito da uno o più cicli chiusi (poiché i sistemi operativi moderni non supportano nessun altro tipo di carattere), ma ogni ciclo ha un'area zero. Pertanto, potrebbero non essere adatti a te se l'obiettivo è diverso dall'incisione.


Funziona bene con Inkscape purché lo accarezzi invece di riempirlo. Grazie!
Giovanni Mascellani,

3

In architettura un principiante potrebbe disegnare pareti come linee singole. Questo non è preciso e non può esistere: anche le pareti sottili hanno uno spessore.

Allo stesso modo, la tua A a sinistra, anche una sottile ha uno spessore. Quanto è spesso? È 1pt? 0.025pt? Come fa a sapere la stampante? Dobbiamo dirlo.

Per rispondere alla tua domanda, no non può esistere un carattere unidimensionale mentre lo descrivi. Tutte le linee devono avere uno spessore per poter esistere.


2
Non sono completamente d'accordo: lo scopo di un font è descrivere geometrie legate al rendering del testo. Il modo in cui queste geometrie devono essere rese è un problema diverso, che non è descritto dal font stesso. Anche con i caratteri ordinari descritti in TrueType, OpenType o ciò che vuoi, devi ancora decidere quale colore, motivo e qualunque cosa usare per il riempimento o il contorno del contorno. Quindi puoi avere un carattere come quello che dico: è dovere dell'utente specificare lo spessore della linea e le altre proprietà.
Giovanni Mascellani,

2
Inoltre, vi sono applicazioni in cui si ha il concetto di una linea indipendentemente dal suo spessore. Ad esempio, l'applicazione che ho in mente è l'incisione laser vettoriale. Lo spessore di ciò che incido è un sottoprodotto della velocità del laser, della potenza e delle proprietà fisiche del materiale che sto usando. Non ha bisogno di essere conosciuto dal software che guida l'incisore.
Giovanni Mascellani,

2
@Ryan questo non è assolutamente vero. È proprio vero in un mondo incentrato su Adobe. E solo se vuoi essere felice con te stesso. Altrimenti anche allora è una bugia.
joojaa,

1
@immibis che sicuramente viene preso in considerazione nella stampa quando si sceglie un materiale, inchiostro e colore ma non ha nulla a che fare con il carattere. Sullo schermo può esistere un carattere libero dalla profondità, ma non può esistere sullo schermo senza una sorta di larghezza.
Ryan

3
Tutto il testo deve avere la larghezza della linea quando viene disegnato, ma questa larghezza non deve essere memorizzata nel carattere. Può invece essere memorizzato nel documento usando il carattere, per quanto siano le dimensioni e il colore.
Damian Yerrick il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.