Linux c画圆角矩形和填充圆角矩形的问题

J__ack J__ack 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大神好,帮忙看看如下问题,先谢谢了!
如题,画圆角矩形时采用cos和sin函数和半径r来计算出圆角坐标,然后画点,画其它直线,组成圆角矩形,并没有问题。
填充圆角矩形时采用:外层朝里层先画r个圆角矩形,然后矩形填充起来,但画r个圆角矩形的过程有点问题,有漏点,如下图:
代码如下:
int draw_roundrect(int x1,int y1,int x2,int y2,int r,unsigned int color)
{
draw_line_(x1+r,y1,x2-x1-r*2,color);
draw_line_(x1+r,y2,x2-x1-r*2,color);

draw_linel(x1,y1+r,y2-y1-r*2,color);
draw_linel(x2,y1+r,y2-y1-r*2,color);

draw_arc(x1+r,y1+r,r,90,180,color);
draw_arc(x2-r,y1+r,r,0,90,color);
draw_arc(x1+r,y2-r,r,180,270,color);
draw_arc(x2-r,y2-r,r,270,360,color);

return 0;
}
int fill_roundrect(int x1,int y1,int x2,int y2,int r,unsigned int color)
{
int i;

for(i=1;i<=r;i++){
draw_roundrect(x1+i,y1+i,x2-i,y2-i,r,color);
}

fill_rect(x1+r,y1+r,x2-r,y2-r,color);
return 0;
}

...全文

相关推荐

嵌入式linux上使用QT4和mitab显示mapinfo或mif格式电子地图

嵌入式linux上使用QT4和mitab显示mapinfo或mif格式电子地图

opasser

Qt绘制具有圆角和半透明效果的窗口(C++)

在Qt中,我们可以使用QPainter类和QWidget类来实现绘制具有圆角和半透明效果的窗口。下面是一个示例代码,展示了如何创建这样的窗口。通过运行上述代码,您将得到一个具有圆角和半透明效果的窗口。您可以根据需要调整窗口的大小、颜色和圆角半径,以满足您的需求。在这个示例中,我们将背景颜色设置为黑色,并指定透明度为128,以实现半透明效果。的自定义窗口类,它继承自QWidget。在构造函数中,我们设置了窗口的标志为。,这样可以去掉窗口的边框,使其看起来更像一个自定义窗口。在这个示例中,我们创建了一个名为。

周星星编程之路

Esp8266点亮JMD0.96C OLED屏[代码]

本文详细介绍了如何使用ESP8266(NodeMCU)通过I2C协议点亮JMD0.96C-1 OLED显示屏。首先概述了ESP8266的I2C资源,包括引脚分配(SDA和SCL)以及使用Arduino Wire库进行初始化和通信的基本步骤。接着深入讲解了I2C协议的通讯过程,包括起始条件、设备地址传输、从设备响应、数据传输、停止条件和重复起始条件等关键环节。在实践部分,文章提供了具体的接线方法(GPIO4作为SDA,GPIO5作为SCL),并给出了两个Arduino示例代码:第一个用于扫描I2C总线上的设备地址(本例中OLED地址为0x3C),第二个通过Adafruit_SSD1306库在OLED上显示图形(正方形和圆形)。整个教程从理论到实践,帮助读者掌握ESP8266与I2C OLED屏的驱动方法。

n4o5p6q7r

lcd.c,彩屏显示,主要是圆角方形做按键显示也包含基础的字符及图片显示

此.c文件是在正点原子4.3寸ATK触摸屏上显示的代码。主要有汉字,字母,数字及1位,2位小数的显示。另有圆,方形,带边框纯色圆角方形,带边框二色圆角方形,带边框三色圆角方形等。供参考

qq_38863219

inkscape 绘制图标教程

inkscape算是非常好用的矢量图制图软件了 ,这是一个绘制图标的简单教程,见微知著,希望能为您提供一点帮助

laohei889
评论 4
收藏 已收藏
分享
返回顶部
J__ack
C语言 70,039 成员 243,237 内容