计算机图形学直线生成算法包含DDA算法,中点Bresenham算法,改进的Bresenham算法的完整c语言程序代码,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 22:51:22
计算机图形学直线生成算法包含DDA算法,中点Bresenham算法,改进的Bresenham算法的完整c语言程序代码,

计算机图形学直线生成算法包含DDA算法,中点Bresenham算法,改进的Bresenham算法的完整c语言程序代码,
计算机图形学直线生成算法
包含DDA算法,中点Bresenham算法,改进的Bresenham算法的完整c语言程序代码,

计算机图形学直线生成算法包含DDA算法,中点Bresenham算法,改进的Bresenham算法的完整c语言程序代码,
我连画圆的一块给你吧
需要橡皮筋 椭圆 树什么的可以和我说 我是用 c#写的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace line
{
public partial class Form1 : Form
{
Graphics g;

public Form1()
{
InitializeComponent();
g = pictureBox1.CreateGraphics();

}
private void button1_Click_1(object sender, EventArgs e)
{
// g.TranslateTransform(-300,-300);
g.Clear(BackColor);
double x1, x2, y1, y2;
double x, y;
x1 = System.Convert.ToSingle(textBox1.Text);
y1 = System.Convert.ToSingle(textBox2.Text);
x2 = System.Convert.ToSingle(textBox3.Text);
y2 = System.Convert.ToSingle(textBox4.Text);
x = x1;
double k = (y1 - y2) / (x1 - x2);
Color color1 = Color.FromArgb(255, 0, 0); //定义颜色
Brush bru1 = new SolidBrush(color1);//定义笔
Color color2 = Color.FromArgb(0, 255, 0); //定义颜色
Brush bru2 = new SolidBrush(color2);//定义笔
Pen pen1 = new Pen(bru1, 1);
Pen pen2 = new Pen(bru2, 1);
while (x < x2)
{
// textBox3.Text = System.Convert.ToString(k);
y = (double)k * (x - x1) + y1;
double a;
a=y%1;
float xx = Convert.ToSingle(x);
float yy = Convert.ToSingle(y);
if (a > 0.5)
{

g.DrawLine(pen1, xx, yy, xx,yy+1);
}
else
{
g.DrawLine(pen2, xx, yy, xx, yy+1);
}
x++;

}
//g.DrawLine(p,10,10,100,100);

}
private void button2_Click(object sender, EventArgs e)
{
g.TranslateTransform(300, 300);
g.Clear(BackColor);
float r;//r为圆的圆心
r =System.Convert.ToSingle(textBox6.Text);
Color color1 = Color.FromArgb(255, 0, 0); //定义颜色
Brush bru1 = new SolidBrush(color1);//定义笔
Color color2 = Color.FromArgb(0, 255, 0); //定义颜色
Brush bru2 = new SolidBrush(color2);//定义笔
Pen pen1 = new Pen(bru1,1);
Pen pen2 = new Pen(bru2, 1);
float x = 0;
float y = r;
while (x 0.5)
{
g.DrawLine(pen1, x, y, x, y+1);
g.DrawLine(pen1, -x, y, -x, y + 1);
g.DrawLine(pen1, x, -y, x, -y + 1);
g.DrawLine(pen1, -x, -y, -x, -y + 1);
}
else
{
g.DrawLine(pen2, x, y, x, y+1);
g.DrawLine(pen2, -x, y, -x, y + 1);
g.DrawLine(pen2, x,- y, x,- y + 1);
g.DrawLine(pen2, -x, -y,- x, -y + 1);
}
x++;
}
g.TranslateTransform(-300, -300);
}
private void button3_Click(object sender, EventArgs e)
{

}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox1.Text)
{
case "画圆":
{

textBox1.Visible = false;
textBox2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
textBox5.Visible = true;
textBox6.Visible = true;
textBox7.Visible = false;
textBox8.Visible = false;
label1.Visible = false;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = true;
label6.Visible = true;
label7.Visible = false;
label8.Visible = false;
label9.Visible = true;
button1.Visible = false;
button2.Visible = true;
button3.Visible = false;
break;
}
case"画线":
{
textBox1.Visible = true;
textBox2.Visible = true;
textBox3.Visible = true;
textBox4.Visible = true;
textBox5.Visible = false;
textBox6.Visible = false;
textBox7.Visible = false;
textBox8.Visible = false;
label1.Visible = true;
label2.Visible = true;
label3.Visible = true;
label4.Visible = true;
label5.Visible = false;
label6.Visible = false;
label7.Visible = false;
label8.Visible = false;
label9.Visible = false;
button1.Visible = true;
button2.Visible = false;
button3.Visible = false;
break;
}
case"画椭圆":
{
textBox1.Visible = false;
textBox2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
textBox5.Visible = false;
textBox6.Visible = false;
textBox7.Visible = true;
textBox8.Visible = true;
label1.Visible = false;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = false;
label6.Visible = false;
label7.Visible = true;
label8.Visible = true;
label9.Visible = false;
button1.Visible = false;
button2.Visible = false;
button3.Visible = true;
break;
}
}
}

}
}

计算机图形学直线生成算法包含DDA算法,中点Bresenham算法,改进的Bresenham算法的完整c语言程序代码, 计算机图形学 Bresenham 画线算法和DDA 画线算法新人,刚刚学习计算机图形学,遇到两个小题,1.使用Bresenham 画线算法,画这样一条线段:端点为(20,10)和(30,18) 2.使用DDA 画线算法,画这样一条线 计算机图形学 Bresenham 画线算法和DDA 画线算法新人,刚刚学习计算机图形学,遇到两个小题,1.使用Bresenham 画线算法,画这样一条线段:端点为(20,10)和(30,18) 2.使用DDA 画线算法,画这样一条线 计算机图形学:Matlab编程画直线(DDA算法)DDA-line(x1,y1,x2,y2,color) int x1, y1,x2,y2,color; { int length; float x, y,x,y ; length =abs(x2-x1); if (abs(y2-y1)>length)length=abs(y2-y1); x=(x2-x1)/length; 计算机图形学的题:已知起点A(16,-5)和终点B(-4,8),用DDA法在A和B之间生成一段直线 计算机图形学问题:编写中点分割的线段裁剪算法? 计算机图形学,光线跟踪算法的过程是什么 bresenham画线算法与计算机图形学画线算法有什么不同? 请问计算机图形学和数字图像处理有啥区别吗?sift算法是属于这两个领域中的哪一个呢? 计算机程序算法是什么意思 计算机图形学 中点圆算法和扫描线算法新人,刚刚学习计算机图形学,遇到两个小题,1.在用扫描线算法进行填充的过程中,需要用户建立边表ET,下面根据给出的多边形建立边表ET,并写出y=4时的AEF 计算机图形学 中点圆算法和扫描线算法新人,刚刚学习计算机图形学,遇到两个小题,1.在用扫描线算法进行填充的过程中,需要用户建立边表ET,下面根据给出的多边形建立边表ET,并写出y=4时的AEF 计算机哪个方向 数学知识或算法设计 比较重要?除了 图形学 声学 密码学 网络工程 以外还有别的吗?另外 搜索引擎开发有用到吗?开发哪些软件 数学知识或算法设计就是命 计算机算法 用流程图表示 / 在计算机程序算法里面 计算机算法设计与分析... 计算机采用什么算法计算 计算机算法 用英语怎么说