在C#窗体中,画一个圆时,周围总是有矩齿,怎么消除这些?
2个回答
2013-06-23
展开全部
为了消除绘制的图形的锯齿现象,可以修改Graphics 对象的SmoothingMode 为HighQuality在调用绘图的方法前加入这一句话就可以了: g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 消除锯齿前的代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms; namespace C_Sharp如何消除画圆时的锯齿{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); Pen myPen=new Pen(Color.Black); g.DrawEllipse(myPen, 50, 50, 150, 150); } }} 消除锯齿前的图: 消除锯齿后的代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms; namespace C_Sharp如何消除画圆时的锯齿{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); Pen myPen=new Pen(Color.Black); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.DrawEllipse(myPen, 50, 50, 150, 150); } }} 消除锯齿后的图:
2013-06-23
展开全部
GDI就这样的,你可以用我提供的以下任意一个办法来缓解这个问题。1、绘制这个圆之前,先绘制一个颜色稍淡一点的蓝色圆,半径比你那个圆大一点,从而达到模糊边缘效果,加的圆越多(但越之前画的圆必须半径比后面的圆的半径略大一点,颜色也稍淡点),效果越好。2、使用WPF,这个不是GDI而是基于DX的,比较精致。3、直接MDX绘制,有点杀机用牛刀的感觉。如果你只是奇怪为什么锯齿,那我已经回答了你,如果你非常追求图形效果,建议你放弃GDI,学习其他图形框架
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询