---
title: "Hand demo"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Hand Demo}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
library(mypaintr)
knitr::knit_hooks$set(mypaint = knitr_mypaint_hook(res = 288))
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.ext = "png",
fig.width = 7,
fig.height = 5,
out.width = "100%",
fig.keep = "none",
mypaint = TRUE
)
```
```{r}
plot_with_hand <- function(...) {
null <- length(list(...)) &&is.null(list(...)[[1]])
title <- deparse(substitute(list(...)))
title <- if (! null) {
sub("list\\((.*)\\)", "human_hand(\\1)", title)
} else {
"NULL"
}
plot.new()
plot.window(c(0, 10), c(0, 10))
title(title)
set_brush(NULL)
if (null)
hand <- NULL
else
hand <- human_hand(seed = 1, ...)
set_hand(hand)
rect(1, 1, 4, 4)
draw_rough_rect(6, 6, 9, 9, col = "green4", hand = hand)
draw_rough_rect(1, 6, 4, 9, col = "darkred",
fill_pattern = zigzag(),
hand = hand)
draw_rough_rect(6, 1, 9, 4, lwd = 2, border = "navy",
col = "slateblue3",
fill_pattern = jumble(density = 12),
hand = hand)
arrows(1, 5, 9, 5, lwd = 6)
}
```
```{r}
plot_with_hand(NULL)
```
```{r}
plot_with_hand()
```
```{r}
plot_with_hand(bow = 0)
```
```{r}
plot_with_hand(wobble = 0)
```
```{r}
plot_with_hand(multi_stroke = 2)
```
```{r}
plot_with_hand(width_jitter = 0.24, multi_stroke = 2)
```
```{r}
plot_with_hand(endpoint_jitter = 0)
```
```{r}
plot_with_hand(endpoint_jitter = 0.02)
```
# Pressure on the default device
```{r}
plot_with_hand(pressure = pressure_flat(0.5))
```
```{r}
plot_with_hand(pressure = pressure_smooth())
```
# Pressure using `mypaint_device()` and brushes
```{r, mypaint=TRUE, fig.keep="none"}
set_brush("classic/pen")
plot_with_hand(pressure = pressure_flat())
```
```{r, mypaint=TRUE, fig.keep="none"}
set_brush("classic/pen")
plot_with_hand(pressure = pressure_smooth())
```
```{r, mypaint=TRUE, fig.keep="none"}
set_brush("ramon/Marker")
plot_with_hand(pressure = pressure_flat())
```
```{r, mypaint=TRUE, fig.keep="none"}
set_brush("ramon/Marker")
plot_with_hand(pressure = pressure_smooth())
```
```{r, mypaint=TRUE, fig.keep="none"}
set_brush("ramon/Marker")
plot_with_hand(pressure = pressure_human())
```