ArrayFire: graphics/plot3.cpp (original) (raw)

#include <math.h>

#include

using namespace af;

static const int ITERATIONS = 200;

static const float PRECISION = 1.0f / ITERATIONS;

int main(int, char**) {

try {

af::Window myWindow(800, 800, "3D Line Plot example: ArrayFire");

static float t = 0.1;

array Z = seq(0.1f, 10.f, PRECISION);

do {

array Y = sin((Z * t) + t) / Z;

array X = cos((Z * t) + t) / Z;

X = max(min(X, 1.0), -1.0);

Y = max(min(Y, 1.0), -1.0);

myWindow.plot(X, Y, Z);

t += 0.01;

} while (!myWindow.close());

fprintf(stderr, "%s\n", e.what());

throw;

}

return 0;

}

Window object to render af::arrays.

A multi dimensional data container.

An ArrayFire exception class.

virtual const char * what() const

Returns an error message for the exception in a string format.

seq is used to create sequences for indexing af::array

void plot(const array &in, const char *const title=NULL)

Renders the input arrays as a 2D or 3D plot to the window.

bool close()

Check if window is marked for close.