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 一.知识点讲解 当我们点击系统自带的按钮时,按钮的外观会发生变化.上篇博文中我们 ...
随机推荐
- springMvc 4.0 jackson包改变
使用之前的json包出包java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException错误. sp ...
- Java for LeetCode 107 Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- Django 模型层--单表
ORM 简介 MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这可以大大的减少了开 ...
- Java多线程系列 基础篇09 Object.wait/notifyJVM源码实现
转载 https://www.jianshu.com/p/f4454164c017 作者 占小狼 最简单的东西,往往包含了最复杂的实现,因为需要为上层的存在提供一个稳定的基础,Object作为java ...
- MySQL Unable to convert MySQL date/time value to System.DateTime的解决办法
在连接串中加入 Convert Zero Datetime=True
- BZOJ 1572 [Usaco2009 Open]工作安排Job:贪心 + 优先队列【先放再更新】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1572 题意: 有n个工作,每个工作有一个截止日期dead[i]和收益pay[i]. 完成一 ...
- 延时加载 lazyload使用技巧
html <img class="lazy" src="images/src_unit.png" data-src="images/index/ ...
- linux应用之tomcat安装(centos)
安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz下载地址:http://tomcat.apache.org/download-70.cgi 安装前提 系统必须已经安装配 ...
- Python: scikit-image Blob detection
这个用例主要介绍利用三种算法对含有blob的图像进行检测,blob 或者叫斑点,就是在一幅图像上,暗背景上的亮区域,或者亮背景上的暗区域,都可以称为blob.主要利用blob与背景之间的对比度来进行检 ...
- HihoCoder1644 : 完美命名的烦恼([Offer收割]编程练习赛37)(有向图的一笔画问题||欧拉路)
描述 程序员常常需要给变量命名.给函数命名.给项目命名.给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼. 小Hi希望给新的项目起个完美的名字.首先小H ...