class: center, middle, inverse, title-slide # Mandalas, curvas clássicas e visualização com R ##
in:VI Seminário Internacional de Estatística com R ### Profs. Drs. Luciane Alcoforado & João Paulo Martins dos Santos ### Academia da Força Aérea ### 25 a 27 de maio de 2022 (updated: 2022-04-19) --- background-image: url(mandala_colorida_lu.jpeg) --- class: center, middle # Mandala ##Círculo em Sânscrito ##Dicionário do google (Oxford Languages) substantivo masculino 1.FILOSOFIA•RELIGIĀO diagrama composto de formas geométricas concêntricas, utilizado no hinduísmo, no budismo, nas práticas psicofísicas da ioga e no tantrismo como objeto ritualístico e ponto focal para meditação [Do ponto de vista religioso, o mandala é considerado uma representação do ser humano e do universo; em sua forma menos elaborada, é denominado iantra.]. 2.POR EXTENSÃO•PSICOLOGIA segundo a teoria junguiana, círculo mágico que representa simbolicamente a luta pela unidade total do eu. --- class: inverse, middle # Objetivos - Descrever e visualizar algumas curvas clássicas - Mostrar o conceito de rotação de um ponto - programar a rotação de pontos - Construir uma base de pontos para representar uma curva (data frame) - plotar os pontos, visualizar a mandala --- class: center, bottom .pull-left[# Curvas Clássicas: Círculo `\(\huge x = r \cos(\theta)\hspace{1.0cm} y = r sen(\theta), \hspace{0.5cm}\theta\in[0,2\pi]\)` <!-- --> ] .pull-right[ # Curvas Clássicas: Elipse `\(\huge x = r_1\cdot \cos(\theta)\hspace{1.0cm} y = r_2\cdot \sin(\theta), \hspace{0.5cm}\theta\in[0,2\pi]\)` <!-- --> ] --- class: center, bottom # Curvas Clássicas: cardióide `\(\huge x = 2r\cos(\theta)-r\cos(2\theta)\hspace{1.0cm} y = 2r\sin(\theta)-r\sin(2\theta), \hspace{0.5cm}\theta\in[0,2\pi]\)` <!-- --> --- class: center, bottom # Curvas Clássicas: Limaçon `\(\huge x = k\cos(\theta)-r\cos(2\theta)\hspace{1.0cm} y = k\sin(\theta)-r\sin(2\theta), \hspace{0.5cm}\theta\in[0,2\pi], k\neq2r\)` <!-- --> --- class: center, bottom # Curvas Clássicas: Lemniscata `\(\theta\in[0,2\pi]\)` .pull-left[ `\(\huge x = \sin(\theta)\hspace{1.0cm} y = \cos(\theta)\sin(\theta), \hspace{0.5cm}\)` <!-- --> ] .pull-right[ `\(\huge x = \frac{a\cdot \sin(\theta)}{1+ \cos^2(\theta)}\hspace{1.0cm} y = \frac{a\cdot cos(\theta)sen(\theta)}{1+cos^2(\theta)}, \hspace{0.5cm}\)` <!-- --> ] --- #Visualizando curvas notáveis com ggplot2 Passo 1: Criando uma tabela com os pontos (x,y) utilizando a parametrização da curva desejada - círculo ```r n = 500 #define a quantidade de pontos para plotar o gráfico t = seq(0, 2*pi, length.out = n) #n valores do parâmetro de 0 a 2pi r = 1 #define o raio da circunferência *x = r*cos(t) #parametrização de x *y = r*sin(t) #parametrização de y dt = data.frame(x,y) #cria os pares ordenados dos pontos da curva ``` --- Passo 2: Plotando os pontos no plano cartesiano ```r #Desenhando o gráfico require(ggplot2) #carregando o pacote p = ggplot()+ coord_fixed()+ theme_void() p= p+ geom_point(data=dt, aes(x=x, y=y), color='black') #Visualizando o gráfico p ``` <!-- --> --- #Visualizando curvas notáveis com ggplot2 Passo 1: Criando uma tabela com os pontos (x,y) utilizando a parametrização da curva desejada - cardióide ```r n = 500 #define a quantidade de pontos para plotar o gráfico t = seq(0, 2*pi, length.out = n) #n valores do parâmetro de 0 a 2pi r = 1 #define o raio da circunferência *x = 2*r*cos(t)-r*cos(2*t) #parametrização de x *y = 2*r*sin(t)-r*sin(2*t) #parametrização de y dt = data.frame(x,y) #cria os pares ordenados dos pontos da curva ``` --- Passo 2: Plotando os pontos no plano cartesiano ```r #Desenhando o gráfico require(ggplot2) #carregando o pacote p = ggplot()+ coord_fixed()+ theme_void() p = p+ geom_point(data=dt, aes(x=x, y=y), color='black') #Visualizando o gráfico p ``` <!-- --> --- #Visualizando curvas notáveis com ggplot2 Passo 1: Criando uma tabela com os pontos (x,y) utilizando a parametrização da curva desejada - espiral ```r n = 500 #define a quantidade de pontos para plotar o gráfico t = seq(0, 6*pi, length.out = n) #n valores do parâmetro de 0 a 2pi r = 1 #define o raio da circunferência *x = r*t*cos(t) #parametrização de x *y = r*t*sin(t) #parametrização de y dt = data.frame(x,y) #cria os pares ordenados dos pontos da curva ``` --- Passo 2: Plotando os pontos no plano cartesiano ```r #Desenhando o gráfico require(ggplot2) #carregando o pacote p = ggplot()+ coord_fixed()+ theme_void() p = p+ geom_point(data=dt, aes(x=x, y=y), color='black') #Visualizando o gráfico p ``` <!-- --> --- --- class: center, bottom ## Rotacionando um ponto  --- <img src="rotacao_ponto.png" width="2000" /> Rotação do ponto com ângulo `\(\theta\)` no sentido anti horário: ##$$x = x1\cos(\theta)-y1sen(\theta)$$ ##$$y = x1sen(\theta)+y1cos(\theta)$$ --- class: inverse, middle, center # Thanks! Slides created via the R package [**xaringan**](https://github.com/yihui/xaringan). The chakra comes from [remark.js](https://remarkjs.com), [**knitr**](http://yihui.name/knitr), and [R Markdown](https://rmarkdown.rstudio.com).