Rasterizador
1 Inicializando (requer Racket)
- Rodescribble doc/rasterizador.scrblPara gerar o HTML dessa documentação; ouscribble --pdf doc/rasterizador.scrblPara gerar como PDF
- Roderacket test.rktPara inicializar um Rasterizador
2 Definindo um Rasterizador
Copie para um arquivo Racket
#lang racket (require "serve.rkt") (make-grid x-scale y-scale pixel-size) (app) Em que x-scale e y-scale são as quantidades de pixels em cada eixo do Grid e pixel-size é o tamanho do pixel (em pixels do monitor)
- Salve como nome.rkt e roderacket nome.rkt
3 Interagindo com um Rasterizador
Coordenada (X, Y, X1 ...) - formato: Inteiro positivo compatível com o tamanho do Grid
Color - formato: (r, g, b), onde r, g e b são inteiros positivos menores que 256
Fill? - formato: Qualquer inteiro indicando para desenhar a figura preenchida ou #f para desenhar somente o contorno
Point: Dado X, Y e Color, o pixel correspondente é desenhado com a cor dada
Line: Um segmento de reta é desenhado do ponto (X1, Y1) até o (X2, Y2)
Circle: Um circulo com centro (X, Y) e raio R (inteiro positivo compatível) é desenhado
Rectangle: Um retângulo é desenhado do ponto (X, Y) até o (X + A, Y + B), para A e B inteiros positivos
Curve: Uma curva quadratica é desenhada do ponto (X1, Y1) até o (X3, Y3) com ponto de controle (X2, Y2) e largura Length (inteiro positivo)
- Figures: Utilizando sintaxe Racket é possivel desenhar várias figuras de uma vez. Exemplo:((rect 0 0 200 140 0 (0,168,89)) (trian 17 70 100 17 182 70 0 (255,204,41)) (trian 17 70 100 122 182 70 0 (255,204,41)) (circle 100 70 35 0 (62,64,149)) (curve 66 63 105 53 133 83 6 (255,255,255)) (point 66 60 (255,255,255)))Obs: entre duas expressões de figuras deve haver somente um espaço