Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of el17ajf by
Graphics/Graphics.cpp
- Committer:
- el17ajf
- Date:
- 2019-03-17
- Revision:
- 12:beb0d7632531
- Parent:
- 11:fba7d54fd36b
- Child:
- 13:59e17cab320a
File content as of revision 12:beb0d7632531:
#include "Graphics.h"
const int Graphics::SCREEN_HEIGHT = 84;
const int Graphics::SCREEN_WIDTH = 48;
const int Graphics::BLOCK_SIZE = 4;
const int Graphics::BORDER_SIZE = 2;
N5110 * Graphics::lcd;
void Graphics::init() {
lcd = new N5110(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
lcd->init();
lcd->setContrast(0.5);
}
void Graphics::deinit() {
delete lcd;
}
void Graphics::clear() {
lcd->clear();
}
void Graphics::render() {
lcd->refresh();
}
void Graphics::drawPoint(int x, int y) {
lcd->setPixel(x, y, true);
}
void Graphics::drawLine(int x1, int y1, int x2, int y2) {
lcd->drawLine(x1, y1, x2, y2, 1);
}
void Graphics::drawDottedLine(int x1, int y1, int x2, int y2) {
lcd->drawLine(
y1,
x1,
y2,
x2,
2 // dotted
);
}
void Graphics::drawBox(int x1, int y1, int x2, int y2) {
Graphics::drawLine(x1, y1, x2, y1);
Graphics::drawLine(x2, y1, x2, y2);
Graphics::drawLine(x2, y2, x1, y2);
Graphics::drawLine(x1, y2, x1, y1);
}
void Graphics::drawBlock(int grid_x, int grid_y) {
// screen coords
int x = gridYToScreenX(grid_y);
int y = gridXToScreenY(grid_x);
Graphics::drawBox(x, y, x + 3, y - 3);
Graphics::drawPoint(x + 2, y - 2);
}
void Graphics::drawBorder() {
Graphics::drawDottedLine(0, 0, 0, SCREEN_HEIGHT - 1);
Graphics::drawDottedLine(1, 1, 1, SCREEN_HEIGHT - 2);
Graphics::drawDottedLine(0, SCREEN_HEIGHT - 1, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
Graphics::drawDottedLine(1, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2, SCREEN_HEIGHT - 2);
Graphics::drawDottedLine(SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, SCREEN_WIDTH - 1, 0);
Graphics::drawDottedLine(SCREEN_WIDTH - 2, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2, 1);
}
int Graphics::gridYToScreenX(int grid_y) {
return grid_y * BLOCK_SIZE + BORDER_SIZE;
}
int Graphics::gridXToScreenY(int grid_x) {
return SCREEN_WIDTH - (grid_x * BLOCK_SIZE) - BORDER_SIZE;
}
