-
大小: 1.18MB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-11-18
- 语言: C/C++
- 标签: Mandelbrot C语言 并行 OpenMP
资源简介
求曼德勃罗集合C语言串行并行代码,使用OpenMP和MPI来应用并行性。
代码片段和文件信息
#include
#include
#include
#include
#include
struct BMPHeader
{
char bfType[2];
int bfSize; // 文件大小(以字节为单位)
int bfReserved; //设置为0
int bfOffBits; //字节偏移到实际位图数据(= 54)
int biSize; // BITMAPINFOHEADER的大小 字节(= 40)
int biWidth; //图像宽度,以像素为单位
int biHeight; //图像高度,以像素为单位
short biPlanes; /*目标设备中planes的数目(设为1) */
short biBitCount; /* 每个像素的Bits(24) */
int biCompression; //压缩类型(如果没有压缩,则为0)
int biSizeImage; //图像大小,以字节为单位(如果没有压缩则为0)
int biXPelsPerMeter; /* 显示设备的分辨率(像素/米) */
int biYPelsPerMeter; /* 显示设备的分辨率(像素/米) */
int biClrUsed; /* 颜色表中的颜色数(如果为0,则使用biBitCount允许的最大值)*/
int biClrImportant; /* 重要颜色数量。如果为0,则所有颜色都很重要*/
};
int write_bmp(const char *filename int width int height char *rgb)
{
int i j ipos;
int bytesPerLine;
unsigned char *line;
FILE *file;
struct BMPHeader bmph;
/* 每行的长度必须是4个字节的倍数 */
bytesPerLine = (3 * (width + 1) / 4) * 4;
strncpy(bmph.bfType “BM“ 2);
bmph.bfOffBits = 54;
bmph.bfSize = bmph.bfOffBits + bytesPerLine * height;
bmph.bfReserved = 0;
bmph.biSize = 40;
bmph.biWidth = width;
bmph.biHeight = height;
bmph.biPlanes = 1;
bmph.biBitCount = 24;
bmph.biCompression = 0;
bmph.biSizeImage = bytesPerLine * height;
bmph.biXPelsPerMeter = 0;
bmph.biYPelsPerMeter = 0;
bmph.biClrUsed = 0;
bmph.biClrImportant = 0;
file = fopen (filename “wb“);
if (file == NULL) return(0);
fwrite(&bmph.bfType 2 1 file);
fwrite(&bmph.bfSize 4 1 file);
fwrite(&bmph.bfReserved 4 1 file);
fwrite(&bmph.bfOffBits 4 1 file);
fwrite(&bmph.biSize 4 1 file);
fwrite(&bmph.biWidth 4 1 file);
fwrite(&bmph.biHeight 4 1 file);
fwrite(&bmph.biPlanes 2 1 file);
fwrite(&bmph.biBitCount 2 1 file);
fwrite(&bmph.biCompression 4 1 file);
fwrite(&bmph.biSizeImage 4 1 file);
fwrite(&bmph.biXPelsPerMeter 4 1 file);
fwrite(&bmph.biYPelsPerMeter 4 1 file);
fwrite(&bmph.biClrUsed 4 1 file);
fwrite(&bmph.biClrImportant 4 1 file);
line = (unsigned char *) malloc(bytesPerLine);
if (line == NULL)
{
fprintf(stderr “Can‘t allocate memory for BMP file.\n“);
return(0);
}
for (i = height - 1; i >= 0; i--)
{
for (j = 0; j < width; j++)
{
ipos = 3 * (width * i + j);
line[3*j] = rgb[ipos + 2];
line[3*j+1] = rgb[ipos + 1];
line[3*j+2] = rgb[ipos];
}
fwrite(line bytesPerLine 1 file);
}
free(line);
fclose(file);
return(1);
}
void render(char *out int width int height) {
int xy;
for(x=0;x
for(y=0;y //unsigned int xI;
//unsigned int yI;
int index = 3*width*y + x*3;
float x_origin = ((flo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4333 2019-06-06 09:41 曼德勃罗集合串行.cpp
文件 4524 2019-06-06 16:05 曼德勃罗集合并行.cpp
文件 50331702 2019-06-06 16:06 output.bmp
相关资源
- 流程图生成器C语言
- C语言大一期末考小助手
- 超声波测距及蓝牙模块源码程序c语言
- 重庆邮电大学C语言期末考试题
- 学校教材订购系统,C语言版,内容详
- 利用FFT计算频谱图
- 数据结构——C语言描述》习题及答案
- 郝斌C语言详细笔记().doc
- C语言编写的中文分词程序
- 全国计算机等级考试-二级教程-C语言
- 使用C++实现HDLC协议
- FFT的C语言实现
- LZ77数据压缩C语言源代码
- C语言实现TCP/IP协议通信和UDP协议通信
- 中值滤波_均值滤波c语言实现_工程文
- 直方图均衡化_c语言实现_源代码+实验
- keilC51和C语言入门教程(PDF版)
- 决策树分类器ID3算法C语言
- 通讯录的制作数据结构c语言 代码+报
- SVM分类算法实验报告+C语言程序 加强
- C程序设计试题汇编谭浩强pdf
- 超级马里奥,C语言实现
- 英文原版数据结构与算法分析——C语
- C语言深度解剖(完美版)
- 《C语言程序设计》谭浩强.pdf
- C语言版俄罗斯方块基于EASYX库
- C语言程序设计实验指导及题解 黄迪明
- 教务管理系统源代码含报告C语言
- c语言实用数字图像处理
- c语言+UDP+DES加密+socket编程
评论
共有 条评论