三角形的内接圆 算法原理:

1.三角形角平分线的交点就是三角形内切圆的圆心。

2.(单位向量相加后的向量即为角平分线向量)把两个向量A、B分别归一化(就是分别除以自己的长度),得到C = A/|A| ,D = B/|B| ,然后 C + D 就是原来 A和B的角平分线的向量,用该向量易得角平分线的斜率。

3.构建出角平分线方程y=kx+b后,求交点,求出内切圆的圆心。

%三角形的内接圆
clear all;clc;p=rand(3,2);
%找角平分线向量
v12=(p(2,:)-p(1,:))/norm(p(2,:)-p(1,:));
v13=(p(3,:)-p(1,:))/norm(p(3,:)-p(1,:));v21=(p(1,:)-p(2,:))/norm(p(1,:)-p(2,:));
v23=(p(3,:)-p(2,:))/norm(p(3,:)-p(2,:));v1=v12+v13;
k1=v1(2)/v1(1);
b1=p(1,2)-k1*p(1,1);%一条角平分线v2=v21+v23;%另一条角平分线
k2=v2(2)/v2(1);
b2=p(2,2)-k2*p(2,1);%求两条角平分线的交点 圆心
x0=-(b1-b2)/(k1-k2);
y0=-(-b2*k1+b1*k2)/(k1-k2);%求圆半径
k=(p(2,2)-p(1,2))/(p(2,1)-p(1,1));
b=p(2,2)-k*p(2,1);
r=(k*x0-y0+b)/sqrt(k^2+1);
%画图hold on;
plot(p(:,1),p(:,2),'r');
p=circshift(p,1);
plot(p(:,1),p(:,2));theta=0:0.01:2*pi;
x=x0+r*cos(theta);
y=y0+r*sin(theta);
plot(x,y,'-',x0,y0,'r.');
axis equal

三角形外切圆算法原理:


1.垂直平分线的交点是内切圆的圆心;

2.中点与斜率确定垂直平分线方程

clear all;close all;clc;%三角形外接圆
clear;clc;p=rand(3,2);%求垂直平分线center1=(p(1,:)+p(2,:))/2;%中点center2=(p(2,:)+p(3,:))/2;k1=-1/((p(2,2)-p(1,2))/(p(2,1)-p(1,1)));%斜率k2=-1/((p(3,2)-p(2,2))/(p(3,1)-p(2,1)));b1=center1(2)-k1*center1(1);%垂直平分线fangb2=center2(2)-k2*center2(1);%求交点
x0=-(b1-b2)/(k1-k2)            %求两直线交点
y0=-(-b2*k1+b1*k2)/(k1-k2)
%求半径
r=sqrt((x0-p(1,1))^2+(y0-p(1,2))^2)hold on;
plot(p(:,1),p(:,2),'r');
p=circshift(p,1);%画三角形的
plot(p(:,1),p(:,2),'b');thea=0:0.01:2*pi;
x=x0+r*cos(thea);
y=y0+r*sin(thea);
plot(x,y,'-',x0,y0,'r');
axis equal;

matlab实现三角形的外接圆与内接圆相关推荐

  1. python编程怎么画三角形的外接圆_用MATLAB画三角形外接圆

    用 MATLAB 画三角形的外接圆 clear all ;close all ; clc; %1. 画三角形 : 随机产生三个顶点坐标,将各顶点连接. a=[x1,y1;x2,y2;x3,y3] a= ...

  2. 计算几何(三角形的外接圆+圆内接正多边形) - Temple of Dune - UVA 10439

    计算几何(三角形的外接圆+圆内接正多边形) - Temple of Dune - UVA 10439 题意: 二 维 平 面 内 , 给 定 3 个 点 的 坐 标 , 二维平面内,给定3个点的坐标, ...

  3. 375 Inscribed Circles and Isosceles Triangles 等腰三角形 内接圆 圆周率PI表示

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  4. 使用GeoGebra绘制三角形的外接圆和内切圆

    我们知道三角形外接圆的圆心为中垂线的交点,三角形内切圆的圆心为角平分线的交点. 基于上述理论,下面我们分别画出三角形的外接圆和内切圆 一.画外接圆 1.画三角形 在GeoGebra中画三角形需要用到多 ...

  5. 牛题:等边三角形内接圆上一点到三顶点距离平方和不变

    如图,等边三角形ABC,P为三角形内接圆上一点.求证,AP^2 + BP^2 + CP^2为常数. 证明:把整个图形放在三维空间里,其中A=(1,0,0),B=(0,1,0),C=(0,0,1).因此 ...

  6. SGU 332 Largest Circle(凸包内接圆半径nlogn)

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=332 题意:逆时针给出一个凸包,给凸包的最大内接圆半径. 思路:nlogn的算法: ...

  7. hdu4720 三角形的外接圆

    题意:       给你四个点,问你第四个点是否在前三个点围成的三角形的外接圆上. 思路:       水题,就是练练用魔板罢了,当该三角形是锐角三角形的时候,圆心是任意两条边中垂线的交点,半径是圆心 ...

  8. opencv 最大内接矩形_OpenCV之二值图像分析 – 寻找最大内接圆

    python代码: from __future__ import print_function from __future__ import division import cv2 as cv imp ...

  9. UVa 375 内接圆和等腰三角形

    /* * 解题思路: * 题意不难理解.一直求内接圆半径.知道半径长度小于0.000001为止 */ #include <math.h> #include <stdio.h> ...

  10. 轮廓的最大面积内接矩形/内接圆计算

    1.求出轮廓重心(X0,Y0). 2.找出轮廓上点到重心的距离最大的点1. 3.连接点到重心形成线段,做线段反向等距离延长线段,得到点2. 4.内接矩形:根据对角线上的(点1,点2),根据旋转矩形和平 ...

最新文章

  1. shell与 .sh文件与 .bash文件
  2. java 中的单元测试_浅谈Java 中的单元测试
  3. PCL点云变换与移除NaN
  4. Docker渐入佳境
  5. js 换行符_一文看遍 JS 的所有输入(词法篇)
  6. java有参数 无参数方法
  7. vnc安装mysql_centos 6.7安装与配置vncserver
  8. JS内存管理与垃圾回收
  9. sqlmap地表最强sql注入检测工具学习使用
  10. 一年新的一年_热门系统管理员阅读新的一年
  11. nginx相关概念——正向代理和反向代理
  12. 散粉在哪个步骤用_平时用的散粉除了所谓的定妆,还有这么多好处啊?
  13. UI自动化 win32 模拟键盘按键
  14. VirtualBox安装黑苹果
  15. 旅游产品分析:要出发周边游
  16. 计算机绘图中有六种方法绘圆,绘图用品和制图方法
  17. keil5编译器退出调试时卡死
  18. linux 僵尸进程处理
  19. 通过训练获得最优量化区间——Quantization Interval Learning
  20. Android 开机向导(没有优先启动问题)

热门文章

  1. AspUpload 组件上传 安装方法及其Demo(全)
  2. Electron客户端的自动升级方案-2022版
  3. jQuery手机网站导航下拉菜单代码
  4. android layoutinflater 高度,从LayoutInflater.inflate看View的创建过程
  5. 诺基亚N1 WIFI感叹号消除
  6. Docker 入门教程
  7. 修改AspNetPager的CustomInfoHTML,添加自定义样式
  8. 计算机组装与维护选教材,计算机组装与维护校本教材.doc
  9. java实验报告_java实验报告
  10. 如何设计并实施CRM与ERP的整合方案?