用R语言写一个函数: regular_polygon(n, x, y, col, border), 能绘制出正n边形, 且多边形中心默认在原点, 通过col和border可以设置正多边形内部和边框的颜色
时间: 2023-06-24 14:04:56 浏览: 47
可以使用R中的图形库`ggplot2`来实现该函数,具体代码如下:
```r
library(ggplot2)
regular_polygon <- function(n, x = 0, y = 0, col = "blue", border = "black") {
# 计算n个顶点的坐标
r <- 1
theta <- seq(0, 2*pi, length.out = n+1)[-1]
x <- x + r*cos(theta)
y <- y + r*sin(theta)
# 构造数据框
df <- data.frame(x = c(x, x[1]), y = c(y, y[1]))
# 绘制多边形
ggplot(df, aes(x, y)) +
geom_polygon(fill = col, color = border)
}
```
这个函数首先计算正n边形各个顶点的坐标,然后将这些坐标组成一个数据框,最后使用`geom_polygon`函数绘制多边形。函数的参数包括:`n`表示边数,`x`和`y`表示正多边形中心的坐标,`col`表示内部填充颜色,`border`表示边框颜色。其中`x`和`y`默认为0,`col`默认为蓝色,`border`默认为黑色。
相关问题
写一个函数: regular_polygon(n, x, y, col, border), 能绘制出正n边形, 且多边形中心默认在原点, 通过col和border可以设置正多边形内部和边框的颜色,在调用画出图形
下面是使用Python的turtle库实现的代码:
```python
import turtle
def regular_polygon(n, x, y, col, border):
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.fillcolor(col)
turtle.begin_fill()
for i in range(n):
turtle.forward(100)
turtle.right(360 / n)
turtle.end_fill()
turtle.pencolor(border)
for i in range(n):
turtle.forward(100)
turtle.right(360 / n)
turtle.done()
# 测试代码
regular_polygon(5, 0, 0, 'red', 'blue')
```
函数接受五个参数,分别为多边形边数n、中心点坐标x和y、内部填充颜色col、边框颜色border。
在函数内部,我们使用turtle库来绘制多边形。首先把画笔移动到中心点,然后开始填充内部颜色,接着绘制多边形的边界。
最后,我们调用turtle.done()函数来保持窗口打开状态,直到手动关闭。测试代码中,我们绘制了一个5边形,并设置了红色填充和蓝色边框。
用R语言写一个函数: f_area(f, interval), 能绘制出一个连续函数下方的面积图像, 参数interval代表了自变量的取值区间
以下是用R语言实现的函数f_area(f, interval),用于绘制一个连续函数下方的面积图像:
```r
f_area <- function(f, interval) {
x <- seq(interval[1], interval[2], length.out = 1000) # 生成自变量取值序列
y <- f(x) # 根据自变量取值序列计算因变量取值序列
plot(x, y, type = "l", xlab = "x", ylab = "y") # 绘制连续函数的图像
polygon(c(x, rev(x)), c(y, rep(0, length(y))), col = "gray90") # 绘制下方面积的多边形
}
```
其中,参数f表示连续函数,可以是一个R语言函数或表达式;参数interval是一个包含两个元素的向量,分别表示自变量的取值区间的起点和终点。
函数首先在自变量取值区间内生成一组等距的自变量取值序列x,然后计算出对应的因变量取值序列y,并用plot函数绘制连续函数的图像。最后,函数使用polygon函数绘制下方面积的多边形,并给多边形填充灰色。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)