精华内容
下载资源
问答
  • C# 画(绘制)直线 C#如何画直线 C#绘制直线 WPF 画(绘制)直线 有源代码

    C#画直线

    1.winform 使用的是 Graphics

    private void Form1_Paint(object sender, PaintEventArgs e)
    {   Graphics g = e.Graphics;  
        g.DrawLine(Pens.Blue, new Point(0, 0), new Point(500, 500));
    }
    


    2.WPF

    这离不开Path(System.Windows.Shapes)和StreamGeometry(System.Windows.Media)类。

     代码下载:http://download.csdn.net/detail/wyx100/8320225

     说明参考:http://blog.csdn.net/wyx100/article/details/42340217

    修改其中的MainWindow()如下,DrawingLine()就是画一条直线

            public MainWindow()
            {
                InitializeComponent();
                DrawingLine(new Point(0,0), new Point(200,200));//画一条直线
            }
    
    画直线代码
            protected void DrawingLine(Point startPt,Point endPt)
            {
                LineGeometry myLineGeometry = new LineGeometry();
                myLineGeometry.StartPoint = startPt;
                myLineGeometry.EndPoint = endPt;
    
                Path myPath = new Path();
                myPath.Stroke = Brushes.Black;
                myPath.StrokeThickness = 1;
                myPath.Data = myLineGeometry;
    
                mainPanel.Children.Add(myPath);
                
            }

    3.说明

    定义直线对象

    LineGeometry myLineGeometry = new LineGeometry();

    起点位置

    myLineGeometry.StartPoint = startPt;

    终点位置

    myLineGeometry.EndPoint = endPt;

    Path(System.Windows.Shapes) 绘制一系列相互连接的直线和曲线。

    Path myPath = new Path();

    直线颜色

    myPath.Stroke = Brushes.Black;

    直线宽度

    myPath.StrokeThickness = 1;

    要绘制几何图形的点集合 (点组成线,几何图形是有n个点组成的,myPath.Data存放的是组成几何图形的所有点,这些点组成的几何类似于一个list)

    myPath.Data = myLineGeometry;

    在canvas画板绘制几何图形

    mainPanel.Children.Add(myPath);

    其他的几何图形,例如长方形、圆、三角函数曲线等各种曲线 过程原理类似。

    LineGeometry

    msdn中详细介绍

    遇到问题找msdn,msdn中有详细的说明,或者例子。

    http://msdn.microsoft.com/zh-cn/library/system.windows.media.linegeometry(VS.95).aspx

    LineGeometry 类

    表示线条的几何图形。

    System::Object
      System.Windows::DependencyObject
        System.Windows.Media::Geometry
          System.Windows.Media::LineGeometry

    命名空间:  System.Windows.Media
    程序集:  System.Windows(在 System.Windows.dll 中)

    示例


    下面的示例演示如何创建和呈现 LineGeometry 对象。Geometry对象仅定义对象的几何图形,而不直接呈现任何内容,因而本示例使用Path 形状来呈现线条。因为直线没有面积,设置PathFill 属性没有任何效果;因此仅指定StrokeStrokeThickness 属性。下图显示此示例的输出。

    从 (10,20) 绘制到 (100,130) 的 LineGeometry

    对角线。
    <Canvas Width="200" Height="200">
      <Path Stroke="Black" StrokeThickness="1" >
        <Path.Data>
          <LineGeometry StartPoint="10,20" EndPoint="100,130" />
        </Path.Data>
      </Path>
    </Canvas>
    展开全文
  • PS 画直线

    2019-07-27 17:13:31
    打开ps在界面新建一个...虽然这种方法是,但是却只能横着或竖着画直线不能歪斜着画直线,那就用直线工具。如图。 右击路径的矩形工具,选择“直线工具”。如图。 然后在画布上斜着画一条直线,如图。 ...

    打开ps在界面新建一个画布,大小多少没什么关系,然后在界面上找到画笔工具。
    在这里插入图片描述
    调整合适的画笔大小,然后安住shift + 鼠标横这画是一条横这的直线,然后竖着画一条是一条竖着的直线。
    在这里插入图片描述
    虽然这种方法是好,但是却只能横着或竖着画直线不能歪斜着画直线,那就用直线工具。如图。
    在这里插入图片描述
    右击路径的矩形工具,选择“直线工具”。如图。
    在这里插入图片描述
    然后在画布上斜着画一条直线,如图。
    在这里插入图片描述

    展开全文
  • GMAP.NET 画直线

    千次阅读 2016-04-08 16:56:25
    GMAP.NET 画直线

    1.初始化地图

           
            private GMapMarkerCircle drawingClicle = null;
            private GMapPolygon drawingPolygon = null;
            private List<PointLatLng> drawingPolygonPoints = new List<PointLatLng>();
            private GMapPolygon drawingPolyLine = null;
            private List<PointLatLng> drawingPolygonLinePoints = new List<PointLatLng>();
    
       if (!GMapControl.IsDesignerHosted)
                {
                    //设置 Prividers   
                    // config map    
                    mainMap.MapProvider = GMapProviders.GoogleChinaMap;
                    //设置地图中心点
                   // mainMap.Position = new PointLatLng(22.836945, 113.9501953);
                    mainMap.Position = new PointLatLng(22.836945, 113.9501953);
                    //设置地图最小Zoom 
                    mainMap.MinZoom = 5;
                    //设置地图最大Zoom 
                    mainMap.MaxZoom = 18;
                    //设置地图当前Zoom 
                    mainMap.Zoom = 10;
                    //左键拖拽地图
                    //mainMap.DragButton = MouseButtons.Left;
    
                    this.mainMap.MouseDown += new MouseEventHandler(this.mainMap_MouseDown);
                    this.mainMap.MouseMove += new MouseEventHandler(this.mainMap_MouseMove);
                    this.mainMap.MouseUp += new MouseEventHandler(this.mainMap_MouseUp);  
    
                    mainMap.Overlays.Add(top);
                    mainMap.Overlays.Add(polylinesOverlay);
                }
               void mainMap_MouseDown(object sender, MouseEventArgs e){
                     startPoint = mainMap.FromLocalToLatLng(e.X, e.Y); 
                if (drawType == (int)DrawToolType.PolyLine)
                {
                    drawingPolygonLinePoints.Add(startPoint);
                    if (drawingPolyLine == null)
                    {
                        drawingPolyLine = new GMapPolygon(drawingPolygonLinePoints, "");
                        top.Polygons.Add(drawingPolyLine);
                    } 
                }
               }
                 //画线 覆盖物
            private GMapOverlay polylinesOverlay = new GMapOverlay();
            void mainMap_MouseMove(object sender, MouseEventArgs e)
            {
                this.lblInfo.Text = "lat:" + mainMap.FromLocalToLatLng(e.X, e.Y).Lat + "lng:" + mainMap.FromLocalToLatLng(e.X, e.Y).Lng;
                var latLng = mainMap.FromLocalToLatLng(e.X, e.Y); 
                if (drawType == (int)DrawToolType.PolyLine)
                {
                    drawingPolygonLinePoints.Clear();    
                    if (drawingPolyLine != null)
                    {
                        //drawingPolyLine.Points.Clear();
    
                        drawingPolygonLinePoints.Add(startPoint);
                        drawingPolygonLinePoints.Add(latLng);
    
                        lblLatLng.Text = drawingPolygonLinePoints.Count.ToString(); 
                        drawingPolyLine = new GMapPolygon(drawingPolygonLinePoints,"");
                        polylinesOverlay.Polygons.Clear();
                        polylinesOverlay.Polygons.Add(drawingPolyLine); 
                    } 
                } 
                mainMap.Refresh();
            }
                  PointLatLng startPoint = new PointLatLng();
            void mainMap_MouseUp(object sender, MouseEventArgs e) {  
                if (drawType == (int)DrawToolType.PolyLine)
                {
                    if (drawingPolyLine != null)
                    {
                        drawingPolygonLinePoints.Clear();
                        drawingPolyLine.Points.Clear();
    
                        drawingPolygonLinePoints.Add(startPoint);
                        drawingPolygonLinePoints.Add(mainMap.FromLocalToLatLng(e.X,e.Y));
    
                        drawingPolyLine = new GMapPolygon(drawingPolygonLinePoints,"");
                        top.Polygons.Add(drawingPolyLine); 
    
                        drawType = (int)DrawToolType.None;
                        drawingPolyLine = null;
                        drawingPolygonLinePoints.Clear();
                        polylinesOverlay.Clear();
                    }
                }
            }
    
    


    展开全文
  • OpenCV在图像中添加文字,画点,画直线 ,OpenCV在图像中添加文字,绘制点,绘制直线 ,

    OpenCV在图像中添加文字,画点,画直线

    尊重原创,转载请注明出处】 http://blog.csdn.net/guyuealian/article/details/77870983
    #include "stdafx.h"
    #include <iostream>
    #include <string.h>
    #include<opencv2\opencv.hpp>
    using namespace cv;
    using namespace std;
    int main()
    {
    
    	Mat src = imread("images/2.jpg");//图片必须添加到工程目录下
    
    	// 将原图像转换为灰度图像    
    	//cvtColor(src, src, CV_BGR2GRAY)
    
    	//在原图画一个圆圈点
    	cv::Point point;//特征点,用以画在图像中  
    	point.x = 20;//特征点在图像中横坐标  
    	point.y = 50;//特征点在图像中纵坐标  
    	cv::circle(src, point, 4, cv::Scalar(0, 0, 255));//在图像中画出特征点,2是圆的半径 
    
    	//在原图画一条直线
    	cv::Point start = cv::Point(10, 100); //直线起点
    	cv::Point end = cv::Point(50, 200);   //直线终点
    	cv::line(src, start, end, cv::Scalar(0, 0, 255));
    
    	//在原图某个位置添加文字标记
    	//char str[4];
    	//int num = 100;
    	//_itoa_s(num, str, 10);//数字需要转为字符串来显示
    	string str = "Love100";
    	putText(src, str, end, cv::FONT_HERSHEY_DUPLEX, 0.5, cv::Scalar(0, 255,0 ), 2);
    	imshow("src", src);
    	waitKey(0);
    }
    运行结果:


    展开全文
  • matlab画直线

    万次阅读 2019-01-19 17:45:58
    三种方法: (1)两点法 plot ([0,5],[3,3]) (2)点斜式 refline(k,b) ezplot(‘y-k*x-b’)
  • visio 怎么画直线

    千次阅读 2019-04-17 17:09:59
    visio 怎么画直线
  • C++ 画直线

    2020-03-20 20:41:53
    使用C++画直线 完整代码 #include "graphics.h" int main() { int driver,mode,i; float x0,y0,y1,x1; float j=12,k; driver=VGA;mode=VGAHI; initgraph(&driver,&mode,""); setbkcolor(GREE...
  • c#画直线

    千次阅读 2019-07-28 15:48:51
    c#画直线 本文实例讲述了C#使用GDI绘制矩形的方法。分享给大家供大家参考。具体实现方法如下: 1 2 3 Pen p = new Pen(Color.Black,2); Graphics g = CreateGraphics(); g....
  • 之前看过一个视频,有个人把纸面分割成一个一个三角后一直画直线,慢慢的图纸上的图案变得复杂了起来,大概是像下面这样: 上面这个图便是我用matlab模拟的效果,过程很简单,就是用了泊松云盘采点构建三角网格,...
  • Path画直线与弧线

    千次阅读 2019-03-11 13:24:11
    ####前言 之前讲过Paint和Canvas的基本使用...Path画直线路径 Path画弧线路径 PathView引用说明 项目结构图和效果图 #####一. Path画直线路径 Path画直线路径的步骤分三步: 第一步:设置path的起点,代码如下: ...
  • canvas画布画直线并左右移动

    千次阅读 2019-04-09 18:09:43
    //画直线1 function draw(){ cxt.beginPath(); cxt.moveTo(x,10); //起点 cxt.lineTo(x,290); //末点 cxt.stroke(); } //画直线2 function draw2(){ cxt.beginPath(); cxt.moveTo(x+8,10); //起点 cxt....
  • 用html+canvas+js实现在网页上画直线曲线很容易。但是怎么判断自己画出来的是什么形状呢,比如判断画出来的是不是直线,是不是曲线,是不是三角形。今天就先来讲下:如果判断canvas和js画出来的是不是直线,不多说先...
  • 中点画直线算法

    千次阅读 2019-10-07 14:59:38
    中点画直线算法是计算机图形学中绘制直线的一种经典算法。 该算法的迭代公式: 完整代码: 实现0<k<1的情况(k是直线的斜率) #include<GL/glut.h> void lineMidpoint(int x1, int y1, int x2, int y2)...
  • matplotlib画直线

    万次阅读 2016-12-26 16:23:46
    使用matplotlib两条直线:Code :from matplotlib.lines import Line2D import matplotlib.pyplot as plt figure, ax = plt.subplots() # 设置x,y值域 ax.set_xlim(left=0, right=20) ax.set_ylim(bottom=0, top=...
  • C语言画直线~Bresenham方法

    千次阅读 2018-11-28 09:07:01
    由于项目上遇到了棘手的问题,给定坐标需要实现C绘制直线的驱动函数,绘制直线一般都是显示屏的底层函数,本想着找个显示屏的驱动看下drawline源码,但仔细想一想会不会底层用的是汇编尼,于是便放弃了这种想法。...
  • Bresenham快速画直线算法

    千次阅读 2017-06-24 21:46:40
    那么计算机是如何画直线的呢,其实有比较多的算法,这里讲的是Bresenham的算法,是光栅化的画直线算法。直线光栅化是指用像素点来模拟直线,比如下图用蓝色的像素点来模拟红色的直线。 给定两个点起点P1(x1, ...
  • 画直线算法

    千次阅读 2012-04-13 16:28:26
    画直线算法 原文地址: 画直线算法  前段时间做了一下光栅直线生成算法的研究,并且在VC下实现了DDA算法、Bresenham算法、对称算法、两步算法、及四步算法。这里给个总结,希望和大家交流。 一 总述   ...
  • 百度地图画直线

    千次阅读 2017-07-10 10:12:25
    官方提供的api是弧线,没有单独提供直线,但是提供了一个折线(PolyLine),我们可以利用画着线来画直线,这样就可以实现画直线的需求了。 一下是html示例代码: 添加直线 html,body{ width:100%; ...
  • Bresenham算法画直线

    万次阅读 2018-10-22 19:36:48
    title: 图形学-直线的扫描转换 ...description: Bresenham算法画直线 categories: 必修 photo: tags: CG music-id: password: math: 实验要求 完成中点Bresenham画线,要求如下 创建名称为学号***...
  • Bresenham 画直线算法

    千次阅读 2019-12-13 11:14:26
    给定两个点起点P1(x1, y1), P2(x2, y2),如何它们直连的直线呢,即是如何得到上图所示的蓝色的点。假设直线的斜率0<k>0,直线在第一象限,Bresenham算法的过程如下: 1.起点(x1, y1). 2.准备下一个点,X...
  • Unity 画直线

    千次阅读 2013-07-12 15:24:11
    //材质要记得加工程中添加材质 public Material material; //绘制方法系统回调 void OnPostRender() { if(!material) { Debug.Log("material == null"); return; } ... //设置绘
  • c++MFC任意直线和圆

    2016-04-14 00:29:44
    用C++任意直线和输入半径的圆,求大神指教,得在窗口中运行
  • MATLAB 圆点: X=2; Y=3; plot(X,Y,'ro','MarkerFaceColor','r'); ‘ro’在绘图时,只红色的圈,X和Y的交点 *: X=0; Y=3; plot(X,Y,'r*'); X轴的垂线: X=1; Y=2; Z=5; plot(...
  • C语言编程之用line画直线

    千次阅读 2019-03-06 19:40:24
    问题描述:学习使用line画直线。 程序源码: #include&lt;graphics.h&gt; void main() {int driver,mode,i; float x0,y0,y1,x1; float j=12,k; driver=VGA;mode=VGAHI; initgraph(&amp;driver,&...
  • 在OpenCV里用line画直线

    千次阅读 2020-01-03 10:52:13
    前面使用过这个函数来画直线,现在来看一下这个函数的定义: 其中参数定义: img 要画直线的图像; pt1 直线的起点坐标(x,y); pt2 直线的终点坐标(x,y); color 直线的颜色,(B,G,R); thickness 直线...
  • MFC中画直线

    千次阅读 2014-06-22 10:37:03
    在MFC中画直线,要用到两个
  • c#PictureBox画直线 矩形

    千次阅读 2016-05-13 13:07:07
    转自:... c#PictureBox的基本使用(画直线,矩形) 下面的四个事件一定要绑定,不绑定任何效果都没有的  private Point m_ptStart = new Point(0, 0); private Point m_ptEnd = new Point(0, 0);
  • js画直线

    千次阅读 2017-06-13 22:31:27
    //动态调用画直线函数,drawLine在下面做了定义 drawLine(parseInt(x1),parseInt(y1),parseInt(x2),parseInt(y2), "#0000cc ",2,0); } /****************** JS2D函数集 ******************* 作者:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,478
精华内容 37,791
关键字:

如何画好直线