Visual C# / Windows フォーム アプリケーション (.NET Framework)
プロジェクト名
region
Form1.cs
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace region
{
public partial class Form1 : Form
{
public Form1(){
InitializeComponent();}
private void button1_Click(object sender, EventArgs e){
var paths = new GraphicsPath[3];
var r =60;
var s =80;for(var i =0; i < paths.Length; i++){
var rad =(Math.PI/180)*(120* i +30);
var x =(float)(150+ Math.Cos(rad)* r);
var y =(float)(150+ Math.Sin(rad)* r);
var path = new GraphicsPath();
path.AddEllipse(x - s, y - s,2* s,2* s);
paths[i]= path;}{
var rgn1 = new Region(paths[0]);
rgn1.Exclude(paths[1]);
rgn1.Exclude(paths[2]);
var rgn2 = new Region(paths[1]);
rgn2.Exclude(paths[2]);
rgn2.Exclude(paths[0]);
var rgn4 = new Region(paths[2]);
rgn4.Exclude(paths[0]);
rgn4.Exclude(paths[1]);
var rgn7 = new Region(paths[0]);
rgn7.Intersect(paths[1]);
rgn7.Intersect(paths[2]);
var pic = pictureBox1;
pic.Image= new Bitmap(pic.Width, pic.Height);
var g = Graphics.FromImage(pic.Image);
g.Clear(Color.FromArgb(0x40,0x40,0x40));
g.FillRegion(new SolidBrush(Color.FromArgb(0x00,0x00,0xff)), rgn1);
g.FillRegion(new SolidBrush(Color.FromArgb(0xff,0x00,0x00)), rgn2);
g.FillRegion(new SolidBrush(Color.FromArgb(0x00,0xff,0x00)), rgn4);
g.FillRegion(new SolidBrush(Color.FromArgb(0xff,0xff,0xff)), rgn7);}{
var rgn = new Region(paths[0]);
rgn.Xor(paths[1]);
rgn.Xor(paths[2]);
var pic = pictureBox2;
pic.Image= new Bitmap(pic.Width, pic.Height);
var g = Graphics.FromImage(pic.Image);
g.Clear(Color.FromArgb(0x40,0x40,0x40));
g.FillRegion(new SolidBrush(Color.FromArgb(0xff,0x80,0x00)), rgn);}}}}