题目链接:http://qscoj.cn/problem/52/

题意:中文题诶~

思路:水题,只要知道三角形插值和判断点在三角形内就OK了

关于三角形插值:http://www.cnblogs.com/wangchengfeng/p/3453194.html

先判断插入点是否在三角形内,在的话解二元一次方程组:

P.x = (1 - u - v) * P1.x + u * P2.x + v * P3.x

P.y = (1 - u - v) * P1.y + u * P2.y + v * P3.y

再将u, v代入:P = (1 - u - v) * P1 + u * P2 + v * P3

P就是答案了

代码:

 #include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std; const double res=1e-;
struct node{
double x, y;
}; double get_area(node a, node b, node c){ //***用行列式计算三角形面积
double area=fabs(a.x*b.y+a.y*c.x+b.x*c.y-a.x*c.y-a.y*b.x-b.y*c.x);
return area;
} bool is_ok(node p1, node p2, node p3, node p){//***判断点p是否在三角形内
double areap=get_area(p1, p2, p);
areap+=get_area(p1, p3, p);
areap+=get_area(p2, p3, p);
double area=get_area(p1, p2, p3);
if(fabs(areap-area)<res){
return true;
}else{
return false;
}
} int main(void){
double x1, y1, w1, x2, y2, w2, x3, y3, w3, x, y;
while(cin >> x1 >> y1 >> w1 >> x2 >> y2 >> w2 >> x3 >> y3 >> w3 >> x >> y){
node p1, p2, p3, p;
p1.x=x1, p1.y=y1;
p2.x=x2, p2.y=y2;
p3.x=x3, p3.y=y3;
p.x=x, p.y=y;
if(!is_ok(p1, p2, p3, p)){
cout << - << endl;
continue;
}
double a1=x2-x1, b1=x3-x1, c1=x-x1;
double a2=y2-y1, b2=y3-y1, c2=y-y1;
double u=(b1*c2-b2*c1)/(a2*b1-a1*b2);
double v=(c1-a1*u)/b1;
double ans=(-u-v)*w1+u*w2+v*w3;
printf("%.2lf\n", ans);
}
}

qsc52(三角形线性插值)的更多相关文章

  1. 线性插值&双线性插值&三线性插值

    http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html 內插是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方 ...

  2. [转]线性插值&双线性插值&三线性插值

    转自:http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html 內插是数学领域数值分析中的通过已知的离散数据求未知数据的过 ...

  3. 现代3D图形编程学习-设置三角形颜色(译)

    本书系列 现代3D图形变成学习 http://www.cnblogs.com/grass-and-moon/category/920962.html 设置颜色 这一章会对上一章中绘制的三角形进行颜色的 ...

  4. 用OpenGL绘制平滑着色的三角形与相交区域的混合着色

    一.三角形的绘制 在OpenGL中,面是由多边形构成的.三角形可能是最简单的多边形,它有三条边.可以使用GL_TRIANGLES模式通过把三个顶点连接到一起而绘出三角形. 使用GL_TRIANGLE_ ...

  5. 最近邻插值法&线性插值&双线性插值&三线性插值

    最近邻插值法nearest_neighbor是最简单的灰度值插值.也称作零阶插值,就是令变换后像素的灰度值等于距它最近的输入像素的灰度值. 造成的空间偏移误差为像素单位,计算简单,但不够精确.但当图像 ...

  6. 4.QOpenGLWidget-对三角形进行纹理贴图、纹理叠加

    在上章3.QOpenGLWidget-通过着色器来渲染渐变三角形,我们为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像.但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多 ...

  7. canvas快速绘制圆形、三角形、矩形、多边形

    想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...

  8. Android快乐贪吃蛇游戏实战项目开发教程-05虚拟方向键(四)四个三角形按钮

    该系列教程概述与目录:http://www.cnblogs.com/chengyujia/p/5787111.html 一.如何判断点击的是哪个方向键按钮 在上篇教程中我们实现了左边的三角形按钮效果, ...

  9. Android快乐贪吃蛇游戏实战项目开发教程-04虚拟方向键(三)三角形按钮效果

    该系列教程概述与目录:http://www.cnblogs.com/chengyujia/p/5787111.html 一.知识点讲解 当我们点击系统自带的按钮时,按钮的外观会发生变化.上篇博文中我们 ...

随机推荐

  1. Android 虚拟机 程序安装目录

    Android应用安装涉及到如下几个目录:system/app系统自带的应用程序,无法删除.data/app用户程序安装的目录,有删除权限.安装时把apk文件复制到此目录.data/data存放应用程 ...

  2. HTML5_CSS3可切换注册登录表单

    在线演示 本地下载

  3. 20145239杜文超 《Java程序设计》第10周学习总结

    20145239 <Java程序设计>第10周学习总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 网络概述 1.计算机 ...

  4. linux中fflush函数和printf函数 【转】

    本文转载自:http://blog.chinaunix.net/uid-30058258-id-5029847.html printf是一个行缓冲函数printf函数是标准函数,最终会调用到系统调用函 ...

  5. html5--1.15 style元素与HTML样式基础

    html5--1.15 style元素与HTML样式基础 学习要点: 1.引入样式的三种方式2.了解style元素插入内联样式表与内部样式表 1.引入样式的三种方式 1.外部样式表:通过 link元素 ...

  6. CodeForces - 592D: Super M(虚树+树的直径)

    Ari the monster is not an ordinary monster. She is the hidden identity of Super M, the Byteforces’ s ...

  7. java-01

    二,八,十六进制到十进制的转换方法: 十进制到二,八,十六进制的转换方法: 2:标识符(掌握) (1)就是给类,接口,方法,变量等起名字的字符序列 (2)组成规则: A:英文大小写字母 B:数字 C: ...

  8. bzoj 1049: 数字序列 dp

    题目大意: 给定一个长度为n的整数序列.在改变的数最小的和改变的幅度最小的前提下把它变成一个单调严格上升的序列.求改变的最小的数和这个幅度. 题解: (貌似以前考试考过这道题) 其实这道题就是两道题拼 ...

  9. 算法导论笔记——第十八章 B树

    18.1 B树的定义  18.2 B树的基本操作 与一棵二叉搜索树一样,可以在从树根到叶子这个单程向下过程中将一个新的关键字插入B树中.为了做到这一点,当沿着树向下查找新的关键字所属位置时,就分裂沿途 ...

  10. JAVA操作cassandra数据库

    如果是maven项目,在pom.xml里加入依赖.不是的话下载相应的jar包放到lib目录下.这里驱动包的版本要和你cassandra的大版本一致.我这里cassandra的版本是最新的3.9,驱动是 ...