求黑色求阴影部分的面积五年级面积

给定N个三角形,三角形颜色为黑色,重叠一次,变成相反颜色白色,再重叠一次,变为黑色,求最终黑色部分面积。
//number of TestCase
//number of triangles in TestCase
//x,y,r of Triangle 1
//x,y,r of Triangle 2
//x,y,r of Triangle 3
//number of triangles in TestCase
//number of triangles in TestCase
//answer to TestCase
//answer to TestCase
//answer to TestCase
代码的实现,用的是递归。
定义一个结构体来存放三角形的数据。
定义2个数组,一个用来存放给定的三角形Triangle[],一个用来存放重叠部分的三角形overlap[]。
重叠部分三角形的参数的计算不难,顶点坐标取小,边长由于是等腰三角形,计算也比较简单
代码里有2个递归,一个用来计算Triangle的面积,一个用来计算overlap的面积
#include "stdio.h"
#include "malloc.h"
#define MAX_N (10)
typedef long coord_t;
typedef struct
coord_t x, y,
} triangle_t;
typedef long long area_t;
#define MIN(a,b) ((a) & (b) ? (a) : (b))
#define MAX(a,b) ((a) & (b) ? (b) : (a))
int intersect(const triangle_t *t1, const triangle_t *t2, triangle_t *out)
out-&x = MAX(t1-&x, t2-&x);
out-&y = MAX(t1-&y, t2-&y);
out-&r = MIN(t1-&r - (out-&x - t1-&x) - (out-&y - t1-&y),
t2-&r - (out-&x - t2-&x) - (out-&y - t2-&y));
return 0 & out-&r;
area_t calculate_area(triangle_t *t, int n)
if (!n) return 0;
area_t area = t[0].r * t[0].r;
area += calculate_area(t + 1, n - 1);
int o = 0;
triangle_t overlaps[n - 1];
for (int i = 1; i & ++i)
if (intersect(t, t + i, overlaps + o)) ++o;
area -= 2 * calculate_area(overlaps, o);
int main(void)
setbuf(stdout, NULL);
scanf("%d", &T);
for (int test_case = 1; test_case &= T; ++test_case)
scanf("%d", &N);
triangle_t triangles[MAX_N];
for (int i = 0; i & N; ++i)
scanf("%ld%ld%ld", &triangles[i].x, &triangles[i].y, &triangles[i].r);
area_t total_area = calculate_area(triangles, N);
printf("%.1f\n", total_area / 2.0);
检测两个三角形是否有重叠面积/相交的方法
判断两个三角形是否重叠
MATLAB 求两张大小完全相同二值图像图像的白色区域重叠面积
关于计算重叠四边形的面积的算法
任意方位矩形相交面积计算
公布计算任意多边形相交部分的面积的方法
求两个矩形重叠部分的面积
没有更多推荐了,噢哦,这个页面找不到了
下载作业帮可以找到更多答案扫一扫,访问微社区
只需一步,快速开始
请完成以下验证码
请完成以下验证码
查看: 2962|回复: 3|关注: 0
MATLAB如何求下图中黑色图像的面积
<h1 style="color:# 麦片财富积分
新手, 积分 9, 距离下一级还需 41 积分
怎样求,希望哪位大神能把完整代码发到帖子上,我刚接触,真心不会。
<h1 style="color:# 麦片财富积分
:):):):):):):):):):):)
论坛优秀回答者
<h1 style="color:#51 麦片财富积分
关注者: 69
将这个图像二值化后统计一下就行,比如im是你的原始图像,im=im&50(阈值根据你的需求设定具体大小);num=sum(sum(im))得到的就是黑色点的像素数
MATLAB 基础讨论版块优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 47
|此回复为最佳答案
img=imread('111.jpg');%读取图像 (图片要和这段代码放一个目录下)& && && && && && && && &
img_gray=rgb2gray(img);%图像转为灰度图像,方便计算
% imshow(img);& && &%显示图像
[m,n]=size(img_gray); %获取图像的长和宽。这个是像素层面上的
total_point_count=m*n;& &%计算图片中有多少个像素点
black_point_count=length(find(img_gray~=0));&&%计算不是白色的像素点的个数
area_precent=(black_point_count)/(total_point_count);&&%黑色所占的比例
%如果要算实际的面积,你得知道图片真实的长度和宽度。再映射为像素的长和宽即可。
%最好不要做伸手党。好好看看书。复制代码
站长推荐 /3
用 MATLAB/Simulink开发自动驾驶功能的实例研究
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
如图,求黑色部分(长方形)的面积是______.
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
在直角三角形中,已知两直角边分别为6,8,则斜边长=10,根据矩形面积计算公式S=长×宽=3×10=30,故答案为 30.
为您推荐:
扫描下载二维码扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
AB=BC=4 CD=DE=4根号2 求黑色部分面积
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
连接BD,AB=BC ∠AOB=∠BOCCD=DE ∠COB=∠DOE∠BOC+∠BOD=∠AOB+∠DOE∠BOD=180/2=90弧BD对应的圆周角=90/2=45∠BCD=180-45=35BD^2=BC^2+CD^2-2BC*CD*cos135=16+32+32√2*√2/2=80BO^2=BD^2/2=40S阴影=S扇形BOD=πBO^2/4=10π
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 求阴影部分的面积五年级 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信