转载自:http://www.cnblogs.com/milian/p/3315000.html

求中点坐标:

        /// <summary>
/// 中点
/// </summary>
/// <param name="StartPoint">起点</param>
/// <param name="EndPoint">终点</param>
/// <returns></returns>
public Point3d Midpoint(Point3d StartPoint, Point3d EndPoint)
{
Double x = (StartPoint.X + EndPoint.X)/2;
Double y = (StartPoint.Y + EndPoint.Y) / 2;
Double z = (StartPoint.Z + EndPoint.Z) / 2;
return new Point3d(x, y, z);
}

  求点到直线的距离:

         /// <summary>
/// 获得空间点到空间线段的垂直距离
/// </summary>
/// <param name="line">直线</param>
/// <param name="pt">空间的点</param>
/// <param name="Decimal">小数位数</param>
/// <returns>点到直线垂直距离</returns>
public Double Distance(Line line, Point3d pt, Int16 Decimal)
{
Double t;
if (line != null)
{
Point3d StartPoint = line.StartPoint;
Point3d EndPoint = line.EndPoint;
//直线方向向量
Point3d dir = new Point3d(StartPoint.X - EndPoint.X, StartPoint.Y - EndPoint.Y, StartPoint.Z - EndPoint.Z);
//过点且与直线垂直的平面
t = -(Double)(dir.X * (StartPoint.X - pt.X) + dir.Y * (StartPoint.Y - pt.Y) + dir.Z * (StartPoint.Z - pt.Z)) / (dir.X * dir.X + dir.Y * dir.Y + dir.Z * dir.Z);
//过点的垂直于直线的平面与该直线的交点
Point3d fp = new Point3d(StartPoint.X + dir.X * t, StartPoint.Y + dir.Y * t, StartPoint.Z + dir.Z * t);
return Distance(pt, fp, Decimal);
}
else
{
return 0;
}
}

  求空间两点之间距离:

         /// <summary>
/// 空间两点之间距离
/// </summary>
/// <param name="point1">点1</param>
/// <param name="point2">点2</param>
/// <param name="Decimal">小数位数</param>
/// <returns></returns>
public Double Distance(Point3d point1, Point3d point2, Int16 Decimal)
{
Double a = point1.X - point2.X;
Double b = point1.Y - point2.Y;
Double c = point1.Z - point2.Z;
Double r = a * a + b * b + c * c;
return Math.Round(Math.Abs(Math.Sqrt(r)), Decimal);
} 

  判断两条直线是否重合:

        /// <summary>
/// 判断两条直线是否重合
/// </summary>
/// <param name="line1">线1</param>
/// <param name="line2">线2</param>
/// <param name="allowance">容差</param>
/// <returns></returns>
public Boolean Coincide(Line line1, Line line2, Double allowance)
{
LineSegment3d l1 = new LineSegment3d(line1.StartPoint, line1.EndPoint);
LineSegment3d l2 = new LineSegment3d(line2.StartPoint, line2.EndPoint);
Tolerance tol = new Tolerance(allowance, allowance);
return l1.IsColinearTo(l2, tol);
}

  判断点是否在直线上:  

         /// <summary>
/// 判断点是否在直线上
/// </summary>
/// <param name="line">直线</param>
/// <param name="point1">点</param>
/// <param name="allowance">容差</param>
/// <returns></returns>
public Boolean Coincide(Line line, Point3d point1, Double allowance)
{
Point3d p1 = line.StartPoint;
Point3d p2 = line.EndPoint;
//叉积是否为allowance,判断是否在同一直线上
if (Math.Abs((p1.X - point1.X) * (p2.Y - point1.Y) - (p2.X - point1.X) * (p1.Y - point1.Y)) < allowance)
{
return true;
}
else
{
return false;
}
}

   判断点是否重合:

        /// <summary>
/// 判断点是否重合
/// </summary>
/// <param name="p1">点1</param>
/// <param name="p2">点2</param>
/// <param name="allowance">容差</param>
/// <returns></returns>
public Boolean Coincide(Point3d p1, Point3d p2, Double allowance)
{
if (p1.DistanceTo(p2) < allowance)
return true;
else
return false;
}

[转载]关于AutoCAD.NET的辅助方法的更多相关文章

  1. 关于AutoCAD.NET的辅助方法

    求中点坐标: /// <summary> /// 中点 /// </summary> /// <param name="StartPoint"> ...

  2. [转载]自定义ASP.NET MVC Html辅助方法 TagBuilder

    在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么 ...

  3. 一步步学习ASP.NET MVC3 (13)——HTML辅助方法

    请注明转载地址:http://www.cnblogs.com/arhat 今天老魏是在十分郁闷,我的一个U盘丢了,心疼里面的资料啊,全部是老魏辛辛苦苦积攒的Linux资料,太心疼,到现在心情还不是很爽 ...

  4. 【ASP.NET MVC系列】浅谈表单和HTML辅助方法

    [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...

  5. MVC学习系列4--@helper辅助方法和用户自定义HTML方法

    在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...

  6. 《ASP.NET MVC高级编程(4版)》读书笔记(5)表单和HTML辅助方法

    5.1 表单使用 5.1.1 action 和 method 特性 <form action="/Home/Index">     <input name=&qu ...

  7. MVC辅助方法

    我相信很多人虽然经常用mvc去做一些东西,但是可能很少使用mvcHtml辅助方法 首先我们要创建一个mvc项目 二创建一个HtmlHelper文件夹 三编写文件 四调用辅助方法 调用辅助方法 和使用其 ...

  8. ASP.NET 中HTML和Form辅助方法

    Form辅助方法 Form最重要的属性就是action和method,action指明form中的数据被提交到哪里,method指明用什么方法,默认为GET,下面是一个简单的例子: <form ...

  9. MVC之路随记3--Html辅助方法

    概述:MVC中使用@Html.MethodName 来做很多Html的事情,简化了开发工程量,使用方便,并且易于理解 详细方法: 1.表单 <form action="/Home/Se ...

随机推荐

  1. 使用Jenkins构建持续集成环境

    简介 Jenkins是一个开源的持续集成工具,提供了数百种插件供用户选择,能够完成整套持续集成环境的构建. 它具有如下的特点: 持续集成和持续发布 作为可扩展的自动服务器,Jenkins可以作为简单的 ...

  2. 通过运行时动态给OC分类添加属性

    #import <UIKit/UIKit.h> /** iOS 开发中,分类默认不允许保存属性 如果在分类中,定义一个属性,需要自己实现 getter & setter 方法,而且 ...

  3. Java Cardioid 心脏形曲线 (整理)

    package demo; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import jav ...

  4. 深入学习Heritrix---解析CrawlController(转)

    当我们以Web UI方式使用Heritrix时,点击任务开始(start)按钮时,Heritrix就开始了它的爬取工作.但它的内部 执行流程是怎样的呢?别急,下面将慢慢道来. (一)CrawlJobH ...

  5. yii2.0 输出url 注册js css文件

    //输出url <a href="<?=  Url::to(['/users/login/login','id'=>5,'mark'=>true]) ?>&qu ...

  6. Java中传值与传引用

    不管Java参数类型是什么,一律传递参数的副本. <Thinking In Java>:“When you're passing primitives into a method,you ...

  7. cocos2dc-x解决中文乱码

    中文乱码: 方法一: 选中有中文的那个cpp,点文件另存为,在保存这里竟然有个小箭头 点之,再点编码保存 再选这个编码 这个cpp就UTF-8化了,然后中文就正常了. 但是发现:但字符串字符数为奇数时 ...

  8. JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人

    JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...

  9. .vdat文件怎么打开

    http://tieba.baidu.com/p/2947300642 无需转换,把后缀修改为MP4,就可以了

  10. 关于TCP/UDP缓存

    1.修订单个socket的缓冲区大小:通过setsockopt使用SO_RCVBUF来设置接收缓冲区,该参数在设置的时候不会与rmem_max进行对比校验,但是如果设置的大小超过rmem_max的话, ...