⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spyrender.cc

📁 MatlabVisualization Package
💻 CC
字号:
#include "spyrender.h"#include "mpi.h"#include <math.h>const int AXES_INDENT = 50;SpyRender::SpyRender(int w, int h, int rank, double *data, int start_row,		     int start_column, int nrows, int ncols, 		     DistLayout *data_layout) :   Render(w, h, rank, data, start_row, start_column, nrows, ncols, 	 data_layout, true) {}bool SpyRender::draw_help(int offset) {   offset = offset * 6;  lx = blocks_data[offset + 0];  ly = blocks_data[offset + 1];  data_nr = blocks_data[offset + 2] - lx + 1;  data_nc = blocks_data[offset + 3] - ly + 1;  int rOffset = blocks_data[offset + 4];  int cOffset = blocks_data[offset + 5];  if (data_nr <= 1 &&      data_nc <= 1)    return true;      glBegin(GL_POINTS);  for(int j=0; j<data_nc; j++)    {      for(int i = 0; i<data_nr; i++) 	{	  if(data_buffer[(j+cOffset)*lRows+(i+rOffset)]) {	    nonzero++;	    glVertex2f((j+ly+1), (i+lx+1));	  }	}    }  glEnd();  return false;}void quad(int x1, int y1, int x2, int y2,	  int x3, int y3, int x4, int y4) {  glBegin(GL_QUADS);  glVertex2i(x1, y1);  glVertex2i(x2, y2);  glVertex2i(x3, y3);  glVertex2i(x4, y4);  glEnd();}void SpyRender::done_drawing() {  MPI_Allreduce(&nonzero, &num_nonzeros, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);  coordinatesGL();  glColor3f(1, 0, 0);  num(num_nonzeros, width/2, height - AXES_INDENT/2, 0);}void SpyRender::coordinates() {  glColor3ub(GRAY, 0, 0);  quad(0, 0, 0, AXES_INDENT, width, AXES_INDENT, width, 0);  quad(0, 0, 0, height, AXES_INDENT, height, AXES_INDENT, 0);  quad(0, height - AXES_INDENT, 0, height, width, height, width,        height - AXES_INDENT);  quad(width - AXES_INDENT, 0, width - AXES_INDENT, height, width, height,       width, 0);  glColor3ub(BLACK, 0, 0);  axes(AXES_INDENT, AXES_INDENT, 0, width - AXES_INDENT, AXES_INDENT, 0);  axes(AXES_INDENT, AXES_INDENT, 0, AXES_INDENT, height - AXES_INDENT, 0);  axes(AXES_INDENT, height - AXES_INDENT, 0, width - AXES_INDENT,       height - AXES_INDENT, 0);  axes(width - AXES_INDENT, AXES_INDENT, 0, width - AXES_INDENT,       height - AXES_INDENT, 0);}void SpyRender::coordinatesGL() {    glMatrixMode(GL_PROJECTION);  glLoadIdentity();  glViewport(0, 0, width, height);  glOrtho(0, width, height, 0, -1, 1);  glMatrixMode(GL_MODELVIEW);  glLineWidth(AXES_WIDTH);  glColor3ub(BLACK, 0, 0);}void SpyRender::dataGL() {  glMatrixMode(GL_PROJECTION);  glLoadIdentity();  glViewport(AXES_INDENT, AXES_INDENT, width - 2 * AXES_INDENT, 	     height - 2 * AXES_INDENT);  glOrtho(sc, nc + 1, nr + 1, sr, -1, 1);  glMatrixMode(GL_MODELVIEW);  double point_size = min (width / nc, height / nr);   glPointSize(point_size);    glColor3ub(FIRST_COLOR + (r % NUM_COLORS) * (NUM_COLORS - 1)/ 	     (num_procs % NUM_COLORS), 0, 0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -