计算机图形学-五角星的画法(转)

话不多说直接上实现效果图:

以下是步骤,首先看看如何确定点的坐标。

有以下说明:

① 坐标原点o(0,0)为坐标原点

② 五角星的长轴为R = |oa|,长度已知

③ 五角星的短轴为r = |oa1|

④ 弧度制为rad = π/180 rad

五角星分为以下几个步骤:

① 求五角星外五个顶点的坐标(a,b, c, d, e)

由图可知:∠fbg = 18°,∠aoa’ = ∠a’ob = 36°, ∠aob = 72°

由极坐标公式:

可以得到外五角星的五个坐标:

((R * cos(90°+ k * 72°+ yDegree)), (R * sin(90°+ k * 72°+ yDegree)))其中k = 0、1、2、3、4, yDegree为oa与y轴的夹角(如下图),默认为0。

但画图时会由中心点O(x, y)确定五角星外五个顶点的坐标,经过坐标变换为:

(x -(R * cos(90°+ k * 72°+ yDegree)), y - (R * sin(90°+ k * 72°+yDegree)))

②求解五角星内五顶点坐标(a1, b1, c1,d1, e1)

由图可知:r * cos(36°) = |fo| = R * sin(18°)

所以:r = R * sin(18°) / cos(36°);

根据步骤①相同方法得到五角星内五顶点坐标:

((R* cos(90°+ 36°+ k * 72°+yDegree)), (R * sin(90°+ 36°+ k * 72°+yDegree)))其中k = 0、1、2、3、4, yDegree为oa与y轴的夹角,默认为0。

但画图时会由中心点O(x, y)确定五角星外五个顶点的坐标,经过坐标变换为:

(x -(R * cos(90°+ 36°+ k * 72°+yDegree)), y - (R * sin(90°+ 36°+ k* 72°+ yDegree)))

③开始画图

得到顶点坐标后,选择绘制封闭图形,用画刷填充颜色根据k值(0、1、2、3、4)来选择。如下图,此时为k=0时,用不同颜色的画刷分别填①,③区域。

① 程序实现

版权声明:本文为djh123456021原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/djh123456021/article/details/78306250

ps:

② cario实现

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值