qsc52(三角形线性插值)
题目链接: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(三角形线性插值)的更多相关文章
- 线性插值&双线性插值&三线性插值
http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html 內插是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方 ...
- [转]线性插值&双线性插值&三线性插值
转自:http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html 內插是数学领域数值分析中的通过已知的离散数据求未知数据的过 ...
- 现代3D图形编程学习-设置三角形颜色(译)
本书系列 现代3D图形变成学习 http://www.cnblogs.com/grass-and-moon/category/920962.html 设置颜色 这一章会对上一章中绘制的三角形进行颜色的 ...
- 用OpenGL绘制平滑着色的三角形与相交区域的混合着色
一.三角形的绘制 在OpenGL中,面是由多边形构成的.三角形可能是最简单的多边形,它有三条边.可以使用GL_TRIANGLES模式通过把三个顶点连接到一起而绘出三角形. 使用GL_TRIANGLE_ ...
- 最近邻插值法&线性插值&双线性插值&三线性插值
最近邻插值法nearest_neighbor是最简单的灰度值插值.也称作零阶插值,就是令变换后像素的灰度值等于距它最近的输入像素的灰度值. 造成的空间偏移误差为像素单位,计算简单,但不够精确.但当图像 ...
- 4.QOpenGLWidget-对三角形进行纹理贴图、纹理叠加
在上章3.QOpenGLWidget-通过着色器来渲染渐变三角形,我们为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像.但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多 ...
- canvas快速绘制圆形、三角形、矩形、多边形
想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...
- Android快乐贪吃蛇游戏实战项目开发教程-05虚拟方向键(四)四个三角形按钮
该系列教程概述与目录:http://www.cnblogs.com/chengyujia/p/5787111.html 一.如何判断点击的是哪个方向键按钮 在上篇教程中我们实现了左边的三角形按钮效果, ...
- Android快乐贪吃蛇游戏实战项目开发教程-04虚拟方向键(三)三角形按钮效果
该系列教程概述与目录:http://www.cnblogs.com/chengyujia/p/5787111.html 一.知识点讲解 当我们点击系统自带的按钮时,按钮的外观会发生变化.上篇博文中我们 ...
随机推荐
- C ~ 指针的运算
一 :取地址运算“&”与取内容运算“*”: 单目运算“&”是取操作对象的地址 , “*”是取指针指向的对象的内容 , 两者互为逆运算 int x , *p ; p = &x ; ...
- LeetCode:安排工作以达到最大收益【455】
LeetCode:安排工作以达到最大收益[455] 题目描述 有一些工作:difficulty[i] 表示第i个工作的难度,profit[i]表示第i个工作的收益. 现在我们有一些工人.worker[ ...
- 堆中的路径 【Heap】
7-2 堆中的路径(25 分) 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000),分 ...
- POJ1625 Censored! —— AC自动机 + DP + 大数
题目链接:https://vjudge.net/problem/POJ-1625 Censored! Time Limit: 5000MS Memory Limit: 10000K Total S ...
- Spring Boot2.0之自定义参数
自定义参数,把不同环境的配置放到配置文件中去. 不同环境,如何区分配置文件信息,自定义配置文件信息 比如在 application.properties定义个参数 name=toov5 Spring ...
- 引用 qsort与sort的比较
引用 linpder 的 qsort与sort的比较 在C/C++标准库中提供了快速排序的函数qsort():在STL中也提供了sort()排序函数,那么这两个函数哪个快呢?之前与代码-> ...
- checkbox怎么判断是否选中
下面这种可以使用 if($("#checkbox1").is(':checked')) { alert("1"); } else { alert("0 ...
- L97
We are young. So let's set the world on fire. We can burn brighter than the sun.我们是青年,让我们点亮世界,释放生命,胜 ...
- listen 60
Barbie Exposure May Limit Girls' Career Imagination The ubiquitous Barbie doll: she's been everythin ...
- Unix环境编程之文件IO
1.文件IO 2.文件与目录 3.进程 4.多线程编程 5.信号 6.进程间通信 学习linux编程,首先要学会使用shell,这里一些基础命令就不介绍了.这里唯一要提的一个shell命令就是man. ...