diagrams-lib-1.1.0.7: Embedded domain-specific language for declarative graphics

Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellNone

Diagrams.TwoD.Adjust

Description

A default diagram-adjustment implementation for two-dimensional diagrams, useful for backend implementors.

Synopsis

Documentation

setDefault2DAttributes :: Semigroup m => QDiagram b R2 m -> QDiagram b R2 mSource

Set default attributes of a 2D diagram (in case they have not been set):

  • Line width 0.01
  • Line color black
  • Font size 1
  • Line cap LineCapButt
  • line join miter
  • Miter limit 10

adjustDiaSize2D :: Monoid' m => (Options b R2 -> SizeSpec2D) -> (SizeSpec2D -> Options b R2 -> Options b R2) -> b -> Options b R2 -> QDiagram b R2 m -> (Options b R2, QDiagram b R2 m)Source

Adjust the size and position of a 2D diagram to fit within the requested size. The first two arguments specify a method for extracting the requested output size from the rendering options, and a way of updating the rendering options with a new (more specific) size.

adjustDia2D :: Monoid' m => (Options b R2 -> SizeSpec2D) -> (SizeSpec2D -> Options b R2 -> Options b R2) -> b -> Options b R2 -> QDiagram b R2 m -> (Options b R2, QDiagram b R2 m)Source

adjustDia2D provides a useful default implementation of the adjustDia method from the Backend type class.

As its first two arguments it requires a method for extracting the requested output size from the rendering options, and a way of updating the rendering options with a new (more specific) size.

It then performs the following adjustments:

  • Set default attributes (see setDefault2DAttributes)
  • Freeze the diagram in its final form
  • Scale and translate the diagram to fit within the requested size (see adjustDiaSize2D)
  • Also return the actual adjusted size of the diagram.

adjustSize :: SizeSpec2D -> (Double, Double) -> Transformation R2Source

Deprecated: Use Diagrams.TwoD.Size.requiredScaleT instead.

Re-export requiredScaleT with the name adjustSize for backwards compatibility.

requiredScale :: SizeSpec2D -> (Double, Double) -> DoubleSource

requiredScale spec sz returns a scaling factor necessary to make something of size sz fit the requested size spec, without changing the aspect ratio. Hence an explicit specification of both dimensions may not be honored if the aspect ratios do not match; in that case the scaling will be as large as possible so that the object still fits within the requested size.