Odd baseline for text drawn with `'swiss` on when that means Nimbus Sans
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Ambito
- computer-graphics
Direzione di ricerca
Inizia riproducendo l'espressione 2htdp/image e la chiamata a racket/draw get-text-extent mostrate nell'issue, su sistemi con e senza Helvetica. Esamina come 'swiss viene associato a un font e come le sue metriche vengono utilizzate per il posizionamento. Il lavoro è completato quando il testo renderizzato è centrato in modo coerente e il comportamento rilevante delle metriche del font è coperto da un test di regressione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When I render the following 2htdp/image expression:
(overlay (text "3" 120 "yellow") (square 120 "solid" "dark brown"))
I get a picture that looks like this:

Note that it's not centered. If an actual Helvetica font is used, it produces a centered 3. Also if I use some other font like 'default, it works correctly:

To understand why, consider this program:
(require racket/draw)
(define text-sizing-bm (make-object bitmap-dc% (make-object bitmap% 1 1)))
(define ft (send the-font-list find-or-create-font 120 'swiss 'normal 'normal #f 'default #t))
(send text-sizing-bm get-text-extent "3" ft)
This produces (values 67.0 121.0 33.0 0.0) on my machine but (values 67.0 139.0 27.0 0.0) on a different machine (thanks @ccshan) with Helvetica installed.
It's not clear to me what the bug is here but the drawing definitely seems wrong.
- Lingua principale
- Racket
- Stelle
- 19
- Fork
- 24
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di racket/draw
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 43/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ImageMagick/ImageMagick#9076 ·
I maintainer di solito rispondono entro 1 giorno
-
Status: Needs confirmation Status: Needs triage Type: Code Quality
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno
-
bug studies ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
userFRM/egui-charts#1433 ·
I maintainer di solito rispondono entro 1 giorno