fortplot_raster_markers Module

Raster marker drawing functions

This module provides specialized drawing functions for various marker types including circles, squares, diamonds, and X markers. All functions use antialiasing and support separate edge/face colors for complex markers.

All marker functions use the same coordinate system and rounding approach as the primitive drawing functions to ensure perfect alignment with lines.



Subroutines

public subroutine draw_circle_antialiased(image_data, img_w, img_h, cx, cy, radius, r, g, b)

Draw filled circle with antialiasing

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=1), intent(inout) :: image_data(:)
integer, intent(in) :: img_w
integer, intent(in) :: img_h
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: radius
real(kind=wp), intent(in) :: r
real(kind=wp), intent(in) :: g
real(kind=wp), intent(in) :: b

public subroutine draw_circle_outline_antialiased(image_data, img_w, img_h, cx, cy, radius, r, g, b)

Draw circle outline with antialiasing

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=1), intent(inout) :: image_data(:)
integer, intent(in) :: img_w
integer, intent(in) :: img_h
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: radius
real(kind=wp), intent(in) :: r
real(kind=wp), intent(in) :: g
real(kind=wp), intent(in) :: b

public subroutine draw_circle_with_edge_face(image_data, img_w, img_h, cx, cy, radius, edge_r, edge_g, edge_b, edge_alpha, face_r, face_g, face_b, face_alpha)

Draw circle with separate edge and face colors

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=1), intent(inout) :: image_data(:)
integer, intent(in) :: img_w
integer, intent(in) :: img_h
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: radius
real(kind=wp), intent(in) :: edge_r
real(kind=wp), intent(in) :: edge_g
real(kind=wp), intent(in) :: edge_b
real(kind=wp), intent(in) :: edge_alpha
real(kind=wp), intent(in) :: face_r
real(kind=wp), intent(in) :: face_g
real(kind=wp), intent(in) :: face_b
real(kind=wp), intent(in) :: face_alpha

public subroutine draw_square_with_edge_face(image_data, img_w, img_h, cx, cy, size, edge_r, edge_g, edge_b, edge_alpha, face_r, face_g, face_b, face_alpha)

Draw square marker with separate edge and face colors

Arguments

Type IntentOptional Attributes Name
integer(kind=1), intent(inout) :: image_data(:)
integer, intent(in) :: img_w
integer, intent(in) :: img_h
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: size
real(kind=wp), intent(in) :: edge_r
real(kind=wp), intent(in) :: edge_g
real(kind=wp), intent(in) :: edge_b
real(kind=wp), intent(in) :: edge_alpha
real(kind=wp), intent(in) :: face_r
real(kind=wp), intent(in) :: face_g
real(kind=wp), intent(in) :: face_b
real(kind=wp), intent(in) :: face_alpha

public subroutine draw_diamond_with_edge_face(image_data, img_w, img_h, cx, cy, size, edge_r, edge_g, edge_b, edge_alpha, face_r, face_g, face_b, face_alpha)

Draw diamond marker with separate edge and face colors

Arguments

Type IntentOptional Attributes Name
integer(kind=1), intent(inout) :: image_data(:)
integer, intent(in) :: img_w
integer, intent(in) :: img_h
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: size
real(kind=wp), intent(in) :: edge_r
real(kind=wp), intent(in) :: edge_g
real(kind=wp), intent(in) :: edge_b
real(kind=wp), intent(in) :: edge_alpha
real(kind=wp), intent(in) :: face_r
real(kind=wp), intent(in) :: face_g
real(kind=wp), intent(in) :: face_b
real(kind=wp), intent(in) :: face_alpha

public subroutine draw_x_marker(image_data, img_w, img_h, cx, cy, size, edge_r, edge_g, edge_b)

Draw X-shaped marker

Arguments

Type IntentOptional Attributes Name
integer(kind=1), intent(inout) :: image_data(:)
integer, intent(in) :: img_w
integer, intent(in) :: img_h
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: size
real(kind=wp), intent(in) :: edge_r
real(kind=wp), intent(in) :: edge_g
real(kind=wp), intent(in) :: edge_b