Chapter 30 Further Reading
LCL Graphics Documentation
-
Lazarus Wiki — TCanvas: wiki.lazarus-ide.org/Developing_with_Graphics — Comprehensive guide to canvas drawing in Lazarus, including coordinate systems, drawing primitives, and image handling.
-
Lazarus Wiki — Custom Drawn Controls: wiki.lazarus-ide.org/Custom_Drawn_Controls — Tutorial on creating custom-painted controls that work across all platforms.
-
Free Pascal RTL — Graphics Unit: freepascal.org/docs-html/lcl/graphics/ — API reference for TCanvas, TBitmap, TPen, TBrush, TFont, and related classes.
Data Visualization Principles
-
Edward Tufte, "The Visual Display of Quantitative Information" (2nd edition, 2001) — The definitive work on data visualization. Introduces concepts like data-ink ratio, chart junk, and lie factor. Essential reading for anyone who draws charts.
-
Edward Tufte, "Envisioning Information" (1990) — Covers design strategies for presenting complex data clearly, including small multiples, color usage, and layering.
-
Stephen Few, "Show Me the Numbers" (2nd edition, 2012) — Practical guide to designing tables and graphs for business data. Covers when to use each chart type and how to make them effective.
-
Claus O. Wilke, "Fundamentals of Data Visualization" (2019) — Modern, comprehensive guide available free online. Covers principles that apply regardless of the rendering technology.
Computer Graphics Foundations
-
James D. Foley et al., "Computer Graphics: Principles and Practice" — The standard textbook on computer graphics. Chapter 3 covers rasterization (how lines and shapes are drawn pixel by pixel), which is what the LCL canvas does internally.
-
Bresenham's Line Algorithm — The algorithm used internally to rasterize lines from
MoveTo/LineTo. Understanding it deepens your appreciation for whatCanvas.LineTodoes.
Charting Libraries for Lazarus
-
TAChart: wiki.lazarus-ide.org/TAChart — Lazarus's built-in charting component. After learning to draw charts from scratch (as in this chapter), TAChart provides a higher-level alternative with axes, legends, series types, and interactive features. Learning the fundamentals first makes TAChart much easier to use effectively.
-
fpvectorial: Part of Free Pascal's packages, supports reading/writing SVG and other vector formats. Useful for exporting charts to scalable formats.