思路:

首先连接AD,BD,CD,SABC为三角形的面积,SABD为三角形ABD的面积,SACD....,SBCD.......

因此,若D在三角形则SABC = SABD + SACD + SBCD,若不等,则不在

#include<iostream>
#include<math.h>
using namespace std;
#define ABS_FLOAT_0 0.0001 struct point
{
float x;
float y;
}; /** 计算三角形面积 */
float areas(const point p1, const point p2, const point p3)
{
point AB, BC;
AB.x = p1.x - p2.x;
AB.y = p1.y - p1.x;
BC.x = p3.x - p2.x;
BC.y = p3.y - p3.y;
float s = fabs((AB.x*BC.y - BC.x*AB.y) / 2.0);
if (s > )
{
return s;
}
else if (s < )
{
s = -s;
return s;
} }
/** 判断给定一点是否在三角形内或边上 */ bool Disareas(const point A, const point B, const point C, const point D)
{
float SABC, SABD, SADC, SBCD;
SABC = areas(A, B, C);
SABD = areas(A, B, D);
SADC = areas(A, D, C);
SBCD = areas(B, C, D);
float SABCD = SABD + SADC + SBCD;
if ((SABC - SABCD) > -ABS_FLOAT_0 && (SABC - SABCD) < ABS_FLOAT_0)
{
return true;
}
else{
return false;
} }

8、判断三角形ABC中是否有点D的更多相关文章

  1. 【C语言】判断三角形类型

    根据输入的三角形的三边判断三角形的类型,并输出其面积和类型. #include<stdio.h> #include<stdlib.h> #include<math.h&g ...

  2. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  3. c c++怎么判断一个字符串中是否含有汉字

    c c++怎么判断一个字符串中是否含有汉字 (2013-02-05 10:44:23) 转载▼     #include  #include  int main() { char sztext[] = ...

  4. C#判断一个类中有无"指定名称"的方法

    C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...

  5. javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数

    javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...

  6. js/jquery获取当前页面URL地址并判断URL字符串中是否包含某个具体值

    js/jquery获取当前页面URL地址并判断URL字符串中是否包含某个具体值本文介绍jquery/js获取当前页面url地址的方法,在jquery与js中获取当前页面url方法是一样的,因为jque ...

  7. 判断DataTale中判断某个字段中包含某个数据

    // <summary> /// 判断DataTale中判断某个字段中包含某个数据 /// </summary> /// <param name="dt&quo ...

  8. Python3:判断三角形的类型

    # 判断三角形类型def triangle(a,b,c): if a>0 and b>0 and c>0: if a+b>c and b+c>a and a+c>b ...

  9. js篇-判断数组对象中是否含有某个值,并返回该条数据

    项目背景需求是: 已知: var a=[{name:'jenny',age:18},{name:'john',age:19},{name:'jack',age:20}] var b ='jenny' ...

随机推荐

  1. LAMP平台部署

    LAMP平台的概述 LAMP环境脚本部署:https://github.com/spdir/ShellScripts/tree/master/lamp LAMP的介绍:百度百科 LAMP平台的构成组件 ...

  2. python 操作系统模块 -- OS

    os,语义为操作系统,模块提供了访问多个操作系统服务的功能,可以处理文件和目录这些我们日常手动需要做的操作.os和它的子模块os.path还包括一些用于检查.构造.删除目录和文件的函数,以及一些处理路 ...

  3. Java中的split函数拆分后变成null的问题

    对于一些特殊的情况,split拆分后并没有保留全的元素 如下例子: String x ="a,,,,,,"; String []y = x.split(",") ...

  4. 【转】IAR for STM8介绍、下载、安装与注册

    Ⅰ.写在前面 本文讲述的内容是IAR for STM8(EWSTM8)的介绍.下载.安装与注册,其安装.注册过程和IAR for ARM类似,如果需要了解IAR for ARM相关的文章,可以到我博客 ...

  5. 解决Ubuntu17.04以上系统,yarn init报错

    安装yarn的时候老是装了个cmdtes的东西,官网是说删掉cmdtest重装就行,但是真没用. 正确的解决办法应该是像这位说的一样,先修改一下源,sudo apt update再下载,就能下载到真正 ...

  6. A1031. Hello World for U

    Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. ...

  7. A1056. Mice and Rice

    Mice and Rice is the name of a programming contest in which each programmer must write a piece of co ...

  8. VB: 再次使用的体会

    放下VB已经有7.8年的时候了. 记得在上学的时候,一直迷恋着它,学了三年的VB,写了不少小软件. 到了工作之后,转到JAVA后,就一直没用VB. 这次的项目由于与系统的相关性高以及安装文件的大小有限 ...

  9. 有趣的electron(一)

    跟我一起实现一个基于electron的hello-world吧- Come with me to implement an electron-based project hello-world. 先看 ...

  10. 记录一次react相关总结

    背景说明:元旦接到一个管理后台的项目,是一个关于自定义专题的项目.通过后台的配置自定义专题,前端根据专题模块进行渲染数据.由于管理后台是react做的前后分离,对于一个后端的我来说写写js也算是浅尝一 ...