1234567891011121314151617181920212223242526272829303132333435 |
- //
- // Created by jovian on 09/10/17.
- //
- #include "MetaField.h"
- MetaField::MetaField() {
- clean();
- }
- void MetaField::clean() {
- for (int i(0); i < WIN_H; i++)
- for (int j(0); j < WIN_W; j++) {
- m_field[i][j] = 0.0;
- }
- }
- void MetaField::binary(bool mat[WIN_H][WIN_W], float ceil) {
- for (int i(0); i < WIN_H; i++)
- for (int j(0); j < WIN_W; j++) {
- mat[i][j] = (m_field[i][j] > ceil);
- }
- }
- void MetaField::disturb(int y, int x, float weight) {
- // Escape
- if (x < 0 || x >= WIN_W || y < 0 || y >= WIN_H)
- return;
- // todo Disturb
- for (int i(0); i < WIN_H; i++)
- for (int j(0); j < WIN_W; j++) {
- m_field[i][j] += weight / ((y - i)*(y - i) + (x - j)*(x - j));
- }
- }
|