dda算法

Here you will learn about dda line drawing algorithm in C and C++.

在这里,您将了解C和C ++中的dda线条绘制算法。

In Computer Graphics the first basic line drawing algorithm is Digital Differential Analyzer (DDA) Algorithm.

在计算机图形学中,第一个基本的线条绘制算法是数字差分分析器(DDA)算法。

A line connects two points. It is a basic element in graphics. To draw a line, you need two points between which you can draw a line.

一条线连接两个点。 它是图形中的基本元素。 要绘制一条线,您需要两个点之间可以绘制一条线。

Also Read: Bresenham’s Line Drawing Algorithm in C and C++

另请参阅: Bresenham的C和C ++线条画算法

数字差分分析仪(DDA)算法 (Digital Differential Analyzer (DDA) Algorithm)

Step 1: Read the input of the 2 end points of the line as (x1, y1) & (x2, y2) such that x1 != x2 and y1 != y2

步骤1:将线的两个端点的输入读取为(x1,y1)&(x2,y2),以使x1!= x2和y1!= y2

Step 2: Calculate dx = x2 – x1 and dy = y2 – y1

步骤2:计算dx = x2 – x1和dy = y2 – y1

Step 3:

第三步:

if(dx>=dy)

如果(dx> = dy)

step=dx

步长= dx

else

其他

step=dy

步长= dy

Step 4: xin = dx / step & yin = dy / step

步骤4: xin = dx / step和yin = dy / step

Step 5: x = x1 + 0.5 & y = y1 + 0.5

步骤5: x = x1 + 0.5&y = y1 + 0.5

Step 6: 

步骤6:

for(k = 0; k < step; k++)

for(k = 0; k <步骤; k ++)

{

{

x = x + xin

x = x +鑫

y = y + yin

y = y + yin

putpixel(x, y)

putpixel(x,y)

}

}

C语言中的DDA线图绘制算法程序 (Program for DDA Line Drawing Algorithm in C)

#include <graphics.h>
#include <stdio.h>
#include <math.h>
#include <dos.h>void main( )
{float x,y,x1,y1,x2,y2,dx,dy,step;int i,gd=DETECT,gm;initgraph(&gd,&gm,"c:\\turboc3\\bgi");printf("Enter the value of x1 and y1 : ");scanf("%f%f",&x1,&y1);printf("Enter the value of x2 and y2: ");scanf("%f%f",&x2,&y2);dx=abs(x2-x1);dy=abs(y2-y1);if(dx>=dy)step=dx;elsestep=dy;dx=dx/step;dy=dy/step;x=x1;y=y1;i=1;while(i<=step){putpixel(x,y,5);x=x+dx;y=y+dy;i=i+1;delay(100);}closegraph();
}

Outptut

输出

C ++中DDA线条绘制算法程序 (Program for DDA Line Drawing Algorithm in C++)

#include <graphics.h>
#include <iostream.h>
#include <math.h>
#include <dos.h>void main( )
{float x,y,x1,y1,x2,y2,dx,dy,step;int i,gd=DETECT,gm;initgraph(&gd,&gm,"c:\\turboc3\\bgi");cout<<"Enter the value of x1 and y1 : ";cin>>x1>>y1;cout<<"Enter the value of x2 and y2: ";cin>>x2>>y2;dx=abs(x2-x1);dy=abs(y2-y1);if(dx>=dy)step=dx;elsestep=dy;dx=dx/step;dy=dy/step;x=x1;y=y1;i=1;while(i<=step){putpixel(x,y,5);x=x+dx;y=y+dy;i=i+1;delay(100);}closegraph();
}

Comment below if you have any doubts related above algorithm.

如果您对以上算法有任何疑问,请在下面评论。

翻译自: https://www.thecrazyprogrammer.com/2017/01/dda-line-drawing-algorithm-c-c.html

dda算法

dda算法_C和C ++中的DDA线图绘制算法相关推荐

  1. 股市K线图指标算法的代码实现(二)

    本章上接 股市K线图指标算法的代码实现(一) 6.KDJ 以KDJ(9,3,3)为例,括号内为传入的参数 (1)计算周期的RSV值 RSV = (C(9)-L(9))/(H(9)-L(9))×100 ...

  2. jmp怎么做合并的箱线图_如何在JMP中给箱线图(Box Plot)快速着色

    箱线图(Box-plot),是大家耳熟能详的一种显示数据分散情况的统计图.通过箱线图,我们可以很容易地比较几组数据的形状,识别数据中的异常值,锁定那些需要我们关注的异常值信息,发现解决问题的机会. 箱 ...

  3. 连线自动路由算法:在GEF中实现连线的自动直角路由,智能避障并绕开模型,选择最佳路径进行布线,仿Visio效果

    在使用GEF(图形编辑框架)开发建模工具时,比如利用GEF实现程序流程图建模功能,有时对连线的路由方式会有比较高的要求,比如连线自动采用直角布局,要能够智能地避障并绕开模型,选择最佳路径进行布线.在建 ...

  4. 算法导论——所有点对最短路径:稀疏图Johnson算法

    2019独角兽企业重金招聘Python工程师标准>>> package org.loda.graph;import org.loda.structure.Stack; import ...

  5. java ema算法_K线图指标算法(MA EMA)

    写在前面的话 本人android开发股线图时基于MpAndroidChart开发的,所以后面用到的算法中CandleEntry, Entry等都是MpAndroidChart的API,均使用java实 ...

  6. 股市K线图指标算法的代码实现(一)

    这几个月在做一个关于证券的项目,项目里一些图表的绘制,包括K线图以及相关指标算法的绘制让我有点为难,毕竟我也不炒股,没接触过过这些东西.原先是使用的ta-lib这个金融库来进行相关的计算.不过有些算法 ...

  7. 在一幅图中为箱线图设置不同颜色

    在一幅图中有多个箱线图,有时需要为分组为其设置不同颜色,下面是代码: import numpy as np import matplotlib.pyplot as plt import pandas ...

  8. Canvas中任意波浪线的绘制

    最近接触一个墨水屏的项目,有个需求就是会进行一些标记绘制,类似直线.自由曲线.波浪线等,所以就涉及到波浪线如何绘制. 本篇文章并不会告诉你在 Android 中如何利用 Canvas 去绘制线条. 水 ...

  9. 通达信导出个股某段时间的数据以及在 Excel 中画 K 线图

    打开通达信软件 以中盐化工这支股票为例,输入股票首字母拼音即可找到相应股票 双击进入该支股票 盘后数据下载 点击左上角的 ' 系统 ' ,下拉菜单中选择 ' 盘后数据下载 ' 勾选 ' 日线和实时行情 ...

  10. AMap + echarts、google map + d3.js分别实现数据可视化中的飞线图(迁徙图)

    首先肯定是给出demo啦: 演示demo 直接到左侧选择框中选择View taxi flow里面随便选个日期 总体介绍 最近由于工作室项目需要做一个数据可视化平台,这个平台最终是交由国外人使用的.而国 ...

最新文章

  1. anaconda下tensorflow安装遇到的问题记录及解决办法
  2. 巧用Eclipse中用户自定义包(User Libraries)
  3. 7-181 帅到没朋友 (20 分)
  4. oracle 数字格式取整,Oracle SQL语句操作数字:取整、四舍五入及格式化
  5. numpy文件读写的三对函数
  6. Extjs的打印解决方案
  7. java多线程的api_java多线程之:线程对象一些api
  8. ubuntu14.04/Mint17上Gitolite的搭建过程
  9. 拓端tecdat|用R语言用Nelson Siegel和线性插值模型对债券价格和收益率建模
  10. PHP 根据 搜索条件/勾选数据 分批次 处理数据
  11. 聊聊eureka的preferSameZoneEureka参数 1
  12. 日期操作类--Date类
  13. 各浏览器下图片垂直居中的方法:
  14. LOIC低轨道离子拒绝服务攻击
  15. Linux Email服务搭建与应用
  16. 架构设计(8)—高可用架构设计
  17. UI设计入门学习方法和学习路线
  18. c语言 字符转换成ascii吗,C语言字符转换ASCII码
  19. 一个新进前端小白实习僧的初次探索
  20. js实现在微信中下载apk

热门文章

  1. qq2012beta2java_Wine QQ 最新解决方案:WineQQ2012 Beta2
  2. 【神经网络】2. 神经网络设计过程
  3. web切图怎么做_Web前端切图快捷键、技巧和经验
  4. 全国大学生数学建模竞赛2016A题系泊系统的设计MATLAB程序
  5. 全国各省二氧化碳排放量统计数据(1995-2016年)
  6. 山东工商学院 计算机科学与技术,实验中心-山东工商学院计算机科学与技术学院...
  7. Java Drool规则引擎
  8. 收银系统直接连接总部服务器,超市仓库进销存管理系统DMS与超市收银系统POS数据互换一瞥...
  9. 台达变频器485通讯接线图_台达PLC与变频器用485通讯怎样实现启动、停止和频率给定,程序怎样做。谢谢!...
  10. hbuilder版本更新失败_HbuilderX ios无法自定义安装调试基座