加载中…
个人资料
taita
taita
  • 博客等级:
  • 博客积分:0
  • 博客访问:955
  • 关注人气:32
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

CSharp使用FillClosedCurve填充封闭曲线

(2010-10-26 00:30:12)
标签:

csharp

gdi

图形程序设计

it

分类: c#

FillClosedCurve方法用于填充封闭曲线的内部。

FillMode枚举指定了填充封闭路径的内部的方式。一共有两种填充模式,即交替模式(Alternate)或环绕模式(Winding)。默认模式是Alternate.只有在曲线与自身相交的情况下,才需要使用填充模式。

程序运行效果见图一。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;

namespace FillClosedCurve
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            // 创建一个点的数组
            PointF pt1 = new PointF(40.0f, 50.0f);
            PointF pt2 = new PointF(50.0f, 75.0f);
            PointF pt3 = new PointF(100.0f, 115.0f);
            PointF pt4 = new PointF(200.0f, 180.0f);
            PointF pt5 = new PointF(200.0f, 90.0f);

            PointF[] ptsArrar = { pt1, pt2, pt3, pt4, pt5 };

            // 填充封闭曲线
            float tension = 1.0F;
            // 设置填充模式交替模式
            FillMode flMode = FillMode.Alternate;
            SolidBrush blueBrush = new SolidBrush(Color.Blue);
            // 绘制填充曲线
            e.Graphics.FillClosedCurve(blueBrush, ptsArrar, flMode, tension);

            // 释放对象
            blueBrush.Dispose();
        }
    }
}

图一:

http://s3/middle/5fd719d64937399827982&690

这个例子与前一个不同,它使用了Form的paint方法创建Graphics对象:

e.Graphics.FillClosedCurve(blueBrush, ptsArrar, flMode, tension);


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有