如何使⽤C语⾔填充封闭图形?

2024-06-14 22:28
文章标签 图形 填充 封闭

本文主要是介绍如何使⽤C语⾔填充封闭图形?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、问题

        如要对封闭图形(如两个区域的交集)进⾏填充,那么怎么实现呢?

二、解答

        填充就是⽤指定的颜⾊和图案填满⼀个封闭图形。

        TC 提供了⼀个可对任意封闭图形填充的函数,即 floodfill( ) 。其调⽤格式如下:

void far floodfill(int x, int y, int border);

        其中,x,y 为封闭图形内的任意⼀点: border 为边界的颜⾊,也就是封闭图形轮廓的颜⾊。

        调⽤了该函数后,将⽤指定的颜⾊和图案填满整个封闭图形。

注意:

(1)如果x或y取在边界上,则不进⾏填充。

(2)如果不是封闭图形,则填充会从没有封闭的地⽅溢出去,填满其他地⽅。

(3)如果x或y在图形外⾯,则填充封闭图形外的屏幕区域。

(4)由 border 指定的颜⾊值必须与图形轮廓的颜⾊值相同,但填充⾊可选任意颜⾊。

(5)填充颜⾊和图案由 setfillstyle( ) 函数决定。

        下⾯举例说明 floodfill( ) 函数的⽤法。先画⼀个五角星边界线,形成中⼼1个填充区和外围5个填充区,然后再填充这6个区域。代码如下:

#include <stdio.h>
#include <graphics.h>
#include <math.h>
#define PI 3.1415926
int main()
{int driver = DETECT, mode;int i, maxx, maxy;int point[12];initgraph(&driver, &mode, "");maxx = getmaxx();maxy = getmaxy();setcolor(YELLOW);setfillstyle(SOLID FILL, YELLOW);for (i = 0; i < 5; t++){point[2 * i] = sin((180 + 144 * 1) / 180.0 * PI) * 100 + maxx / 2;point[2 * i + 1] = cos((180 + 144 * i) / 180.0 * PI) * 100 + maxy / 2;}point[10] = point[O];point[11] = point[1];drawpoly(6, point);floodfill(maxx / 2, maxy / 2, YELLOW);for (i = 0; i < 5; i++){floodfill(sin((180 + 144 * i) / 180.0 * PI) * 50 + maxx / 2,cos((180 + 144 * i) / 180.0 * PI) * 50 + maxy / 2, YELLOW);}getch();closegraph();
}

三、总结

        filflood( ) 函数能够实现对封闭图形进⾏填充的功能。

这篇关于如何使⽤C语⾔填充封闭图形?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1061664

相关文章

基于Java实现模板填充Word

《基于Java实现模板填充Word》这篇文章主要为大家详细介绍了如何用Java实现按产品经理提供的Word模板填充数据,并以word或pdf形式导出,有需要的小伙伴可以参考一下... Java实现按模板填充wor编程d本文讲解的需求是:我们需要把数据库中的某些数据按照 产品经理提供的 word模板,把数据

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形

渐变颜色填充

GradientFill函数可以对特定的矩形区域或者三角形区域进行渐变颜色的填充。我们先来看看GradientFill函数到底长得什么样子,帅不帅。 [cpp]  view plain copy print ? BOOL GradientFill(     _In_  HDC hdc,     _In_  PTRIVERTEX pVertex,     _In_  ULONG

【Godot4.3】多边形的斜线填充效果基础实现

概述 图案(Pattern)填充是一个非常常见的效果。其中又以斜线填充最为简单。本篇就探讨在Godot4.3中如何使用Geometry2D和CanvasItem的绘图函数实现斜线填充效果。 基础思路 Geometry2D类提供了多边形和多边形以及多边形与折线的布尔运算。按照自然的思路,多边形的斜线填充应该属于“多边形与折线的布尔运算”范畴。 第一个问题是如何获得斜线,这条斜线应该满足什么样

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

「大数据分析」图形可视化,如何选择大数据可视化图形?

​图形可视化技术,在大数据分析中,是一个非常重要的关键部分。我们前期通过数据获取,数据处理,数据分析,得出结果,这些过程都是比较抽象的。如果是非数据分析专业人员,很难清楚我们这些工作,到底做了些什么事情。即使是专业人员,在不清楚项目,不了解业务规则,不熟悉技术细节的情况下。要搞清楚我们的大数据分析,这一系列过程,也是比较困难的。 我们在数据处理和分析完成后,一般来说,都需要形成结论报告。怎样让大

OpenGL/GLUT实践:流体模拟——数值解法求解Navier-Stokes方程模拟二维流体(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 实现效果2 实现过程2.1 流体模拟实现2.1.1 网格结构2.1.2 数据结构2.1.3 程序结构1) 更新速度场2) 更新密度值 2.1.4 实现效果 2.2 颜色设置2.2.1 颜色绘制2.2.2 颜色交互2.2.3 实现效果 2.3 障碍设置2.3.1 障碍定义2.3.2 障碍边界条件判定2.3.3 障碍实现2.3.

数据处理与数据填充在Pandas中的应用

在数据分析和机器学习项目中,数据处理是至关重要的一步。Pandas作为Python中用于数据分析和操作的一个强大库,提供了丰富的功能来处理和清洗数据。本文将深入探讨Pandas在数据处理,特别是数据填充方面的应用。 在实际的数据集中,缺失值(Missing Values)或异常值(Outliers)是常见的问题。这些不完整或错误的数据如果不加以处理,会严重影响数据分析的准确性和机器学习模型的性能

Android shape 图形

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <!-- "oval","rectangle", "line","ring" 形状--><!-- 圆角 --><cornersandroid