graphics/plot2d.cpp
/*******************************************************
* Copyright (c) 2014, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
********************************************************/
#include <arrayfire.h>
#include <math.h>
#include <cstdio>
using namespace af;
static const int ITERATIONS = 50;
static const float PRECISION = 1.0f / ITERATIONS;
int main(int, char**) {
try {
// Initialize the kernel array just once
af::Window myWindow(800, 800, "2D Plot example: ArrayFire");
array Y;
int sign = 1;
array X = seq(-af::Pi, af::Pi, PRECISION);
array noise = randn(X.dims(0)) / 5.f;
myWindow.grid(2, 1);
for (double val = 0; !myWindow.close();) {
Y = sin(X);
myWindow(0, 0).plot(X, Y);
myWindow(1, 0).scatter(X, Y + noise, AF_MARKER_POINT);
myWindow.show();
X = X + PRECISION * float(sign);
val += PRECISION * float(sign);
if (val > af::Pi) {
sign = -1;
} else if (val < -af::Pi) {
sign = 1;
}
}
} catch (af::exception& e) {
fprintf(stderr, "%s\n", e.what());
throw;
}
return 0;
}
Window object to render af::arrays.
Definition: graphics.h:37
An ArrayFire exception class.
Definition: exception.h:22
virtual const char * what() const
Returns an error message for the exception in a string format.
Definition: exception.h:46
@ AF_MARKER_POINT
Definition: defines.h:470
AFAPI array sign(const array &in)
C++ Interface for getting the sign of input.
AFAPI array sin(const array &in)
C++ Interface for sin.
AFAPI void info()
void plot(const array &in, const char *const title=NULL)
Renders the input arrays as a 2D or 3D plot to the window.
void scatter(const array &in, const af::markerType marker=AF_MARKER_POINT, const char *const title=NULL)
Renders the input arrays as a 2D or 3D scatter-plot to the window.
bool close()
Check if window is marked for close.
void show()
This function swaps the background buffer to current view and polls for any key strokes while the win...
void grid(const int rows, const int cols)
Setup grid layout for multiview mode in a window.
static af::array array(af::dim4 idims, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:327
AFAPI array randn(const dim4 &dims, const dtype ty, randomEngine &r)
Definition: algorithm.h:15
AFAPI const double Pi