mid-kid
2 years ago
5 changed files with 379 additions and 1 deletions
@ -0,0 +1,213 @@ |
|||
#include <iostream> |
|||
#include <vector> |
|||
#include <complex> |
|||
|
|||
//#define ANIMATE
|
|||
|
|||
using namespace std; |
|||
|
|||
enum Tile { |
|||
EMPTY, |
|||
ROCK, |
|||
SAND |
|||
}; |
|||
|
|||
struct Input { |
|||
vector<vector<complex<unsigned>>> rocks; |
|||
vector<vector<Tile>> map; |
|||
complex<unsigned> start; |
|||
complex<unsigned> size; |
|||
}; |
|||
|
|||
void make_map(Input &input) |
|||
{ |
|||
// Figure out map extremes
|
|||
unsigned min_x = 500, max_x = 500; |
|||
unsigned min_y = 0, max_y = 0; |
|||
for (auto &rock : input.rocks) { |
|||
for (auto &p : rock) { |
|||
if (p.real() < min_x) min_x = p.real(); |
|||
if (p.real() > max_x) max_x = p.real(); |
|||
if (p.imag() < min_y) min_y = p.imag(); |
|||
if (p.imag() > max_y) max_y = p.imag(); |
|||
} |
|||
} |
|||
|
|||
input.start = {min_x, min_y}; |
|||
input.size = {1 + max_x - min_x, 1 + max_y - min_y}; |
|||
|
|||
input.map = vector<vector<Tile>>(input.size.imag(), vector<Tile>(input.size.real())); |
|||
|
|||
for (auto &rock : input.rocks) { |
|||
complex<unsigned> p = rock.at(0); |
|||
input.map[p.imag() - input.start.imag()][p.real() - input.start.real()] = ROCK; |
|||
for (unsigned i = 1; i < rock.size(); i++) { |
|||
complex<unsigned> &np = rock[i]; |
|||
while (p != np) { |
|||
int dx = np.real() - p.real(); |
|||
int dy = np.imag() - p.imag(); |
|||
if (dx > 1) dx = 1; |
|||
if (dx < -1) dx = -1; |
|||
if (dy > 1) dy = 1; |
|||
if (dy < -1) dy = -1; |
|||
p += complex<int>(dx, dy); |
|||
input.map[p.imag() - input.start.imag()][p.real() - input.start.real()] = ROCK; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
Input parse() |
|||
{ |
|||
Input data; |
|||
for (string line; getline(cin, line);) { |
|||
vector<complex<unsigned>> cur; |
|||
unsigned pos = 0; |
|||
for (;;) { |
|||
unsigned first = pos; |
|||
unsigned first_end = line.find(",", pos); |
|||
unsigned second = first_end + 1; |
|||
unsigned second_end = line.find(" -> ", pos); |
|||
pos = second_end + 4; |
|||
if (first == first_end || second == second_end) break; |
|||
unsigned real = stoi(line.substr(first, first_end)); |
|||
unsigned imag = stoi(line.substr(second, second_end)); |
|||
cur.push_back({real, imag}); |
|||
} |
|||
data.rocks.push_back(cur); |
|||
} |
|||
make_map(data); |
|||
return data; |
|||
} |
|||
|
|||
#ifdef ANIMATE |
|||
#include <fstream> |
|||
unsigned render_frame = 0; |
|||
void render(const vector<vector<Tile>> &map) |
|||
{ |
|||
char fname[] = "img/00000.pam"; |
|||
sprintf(fname, "img/%05u.pam", render_frame++); |
|||
auto file = ofstream(fname); |
|||
file << "P7\n"; |
|||
file << "WIDTH " << map.front().size() << '\n'; |
|||
file << "HEIGHT " << map.size() << '\n'; |
|||
file << "DEPTH 3\nMAXVAL 255\nTUPLTYPE RGB\nENDHDR\n"; |
|||
|
|||
for (unsigned y = 0; y < map.size(); y++) { |
|||
for (unsigned x = 0; x < map.front().size(); x++) { |
|||
uint32_t color = 0; |
|||
switch (map[y][x]) { |
|||
case ROCK: color = 0xFF0000; break; |
|||
case SAND: color = 0x00FFFF; break; |
|||
default: break; |
|||
} |
|||
file.write((char *)&color, 3); |
|||
} |
|||
} |
|||
file.close(); |
|||
} |
|||
#endif |
|||
|
|||
complex<int> dirs[] = { |
|||
{0, 1}, |
|||
{-1, 1}, |
|||
{1, 1} |
|||
}; |
|||
|
|||
unsigned p1(const Input &input) |
|||
{ |
|||
auto map = input.map; |
|||
|
|||
const complex<int> sand_start(500, 0); |
|||
|
|||
unsigned count = 0; |
|||
for (;;) { |
|||
bool oob = false; |
|||
complex<int> sand = sand_start - (complex<int>)input.start; |
|||
for (;;) { |
|||
bool moved = false; |
|||
for (auto &d : dirs) { |
|||
complex<int> test = sand + d; |
|||
if (test.real() < 0 || test.real() >= (int)input.size.real()) oob = true; |
|||
if (test.imag() < 0 || test.imag() >= (int)input.size.imag()) oob = true; |
|||
if (oob) break; |
|||
auto tile = map[test.imag()][test.real()]; |
|||
if (tile != EMPTY) continue; |
|||
sand = test; |
|||
moved = true; |
|||
break; |
|||
} |
|||
if (!moved) { |
|||
if (!oob) map[sand.imag()][sand.real()] = SAND; |
|||
break; |
|||
} |
|||
} |
|||
#ifdef ANIMATE |
|||
//render(map);
|
|||
#endif |
|||
if (oob) break; |
|||
count++; |
|||
} |
|||
return count; |
|||
} |
|||
|
|||
unsigned p2(const Input &input) |
|||
{ |
|||
auto map = input.map; |
|||
|
|||
map.push_back(vector<Tile>(input.size.real(), EMPTY)); |
|||
map.push_back(vector<Tile>(input.size.real(), ROCK)); |
|||
complex<int> start = input.start; |
|||
complex<int> size = input.size + complex<unsigned>(0, 2); |
|||
|
|||
const complex<int> sand_start(500, 0); |
|||
|
|||
unsigned count = 0; |
|||
for (;;) { |
|||
complex<int> sand = sand_start - start; |
|||
if (map[sand.imag()][sand.real()] == SAND) break; |
|||
for (;;) { |
|||
bool moved = false; |
|||
for (auto &d : dirs) { |
|||
complex<int> test = sand + d; |
|||
|
|||
// Widen the map
|
|||
if (test.real() < 0) { |
|||
for (auto &x : map) x.insert(x.begin(), EMPTY); |
|||
map.back().front() = ROCK; |
|||
start += complex<int>(-1, 0); |
|||
test += complex<int>(1, 0); |
|||
size += complex<int>(1, 0); |
|||
} else if (test.real() >= size.real()) { |
|||
for (auto &x : map) x.push_back(EMPTY); |
|||
map.back().back() = ROCK; |
|||
size += complex<int>(1, 0); |
|||
} |
|||
if (test.imag() < 0 || test.imag() >= size.imag()) continue; |
|||
|
|||
auto tile = map[test.imag()][test.real()]; |
|||
if (tile != EMPTY) continue; |
|||
sand = test; |
|||
moved = true; |
|||
break; |
|||
} |
|||
if (!moved) { |
|||
map[sand.imag()][sand.real()] = SAND; |
|||
break; |
|||
} |
|||
} |
|||
#ifdef ANIMATE |
|||
render(map); |
|||
#endif |
|||
count++; |
|||
} |
|||
|
|||
return count; |
|||
} |
|||
|
|||
int main() |
|||
{ |
|||
auto input = parse(); |
|||
cout << p1(input) << endl; |
|||
cout << p2(input) << endl; |
|||
} |
Binary file not shown.
@ -0,0 +1,163 @@ |
|||
494,71 -> 498,71 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
472,131 -> 472,134 -> 466,134 -> 466,141 -> 484,141 -> 484,134 -> 476,134 -> 476,131 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
469,53 -> 474,53 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
499,38 -> 503,38 |
|||
483,107 -> 483,110 -> 476,110 -> 476,113 -> 487,113 -> 487,110 -> 486,110 -> 486,107 |
|||
485,62 -> 489,62 |
|||
493,38 -> 497,38 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
482,144 -> 482,147 -> 480,147 -> 480,153 -> 489,153 -> 489,147 -> 488,147 -> 488,144 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
484,29 -> 488,29 |
|||
483,107 -> 483,110 -> 476,110 -> 476,113 -> 487,113 -> 487,110 -> 486,110 -> 486,107 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
472,41 -> 472,45 -> 469,45 -> 469,48 -> 479,48 -> 479,45 -> 477,45 -> 477,41 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
482,144 -> 482,147 -> 480,147 -> 480,153 -> 489,153 -> 489,147 -> 488,147 -> 488,144 |
|||
472,41 -> 472,45 -> 469,45 -> 469,48 -> 479,48 -> 479,45 -> 477,45 -> 477,41 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
488,65 -> 492,65 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
482,122 -> 486,122 |
|||
482,71 -> 486,71 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
491,68 -> 495,68 |
|||
476,128 -> 480,128 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
460,59 -> 465,59 |
|||
472,41 -> 472,45 -> 469,45 -> 469,48 -> 479,48 -> 479,45 -> 477,45 -> 477,41 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
473,74 -> 473,75 -> 480,75 |
|||
477,57 -> 482,57 |
|||
472,41 -> 472,45 -> 469,45 -> 469,48 -> 479,48 -> 479,45 -> 477,45 -> 477,41 |
|||
493,32 -> 497,32 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
473,55 -> 478,55 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
496,35 -> 500,35 |
|||
479,125 -> 483,125 |
|||
456,57 -> 461,57 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
490,35 -> 494,35 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
474,59 -> 479,59 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
482,144 -> 482,147 -> 480,147 -> 480,153 -> 489,153 -> 489,147 -> 488,147 -> 488,144 |
|||
481,38 -> 485,38 |
|||
482,144 -> 482,147 -> 480,147 -> 480,153 -> 489,153 -> 489,147 -> 488,147 -> 488,144 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
485,119 -> 491,119 -> 491,118 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
482,144 -> 482,147 -> 480,147 -> 480,153 -> 489,153 -> 489,147 -> 488,147 -> 488,144 |
|||
472,131 -> 472,134 -> 466,134 -> 466,141 -> 484,141 -> 484,134 -> 476,134 -> 476,131 |
|||
483,107 -> 483,110 -> 476,110 -> 476,113 -> 487,113 -> 487,110 -> 486,110 -> 486,107 |
|||
472,131 -> 472,134 -> 466,134 -> 466,141 -> 484,141 -> 484,134 -> 476,134 -> 476,131 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
487,26 -> 491,26 |
|||
481,59 -> 486,59 |
|||
459,55 -> 464,55 |
|||
488,128 -> 492,128 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
488,71 -> 492,71 |
|||
472,131 -> 472,134 -> 466,134 -> 466,141 -> 484,141 -> 484,134 -> 476,134 -> 476,131 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
487,38 -> 491,38 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
483,107 -> 483,110 -> 476,110 -> 476,113 -> 487,113 -> 487,110 -> 486,110 -> 486,107 |
|||
482,65 -> 486,65 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
481,32 -> 485,32 |
|||
482,144 -> 482,147 -> 480,147 -> 480,153 -> 489,153 -> 489,147 -> 488,147 -> 488,144 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
475,38 -> 479,38 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
485,68 -> 489,68 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
483,107 -> 483,110 -> 476,110 -> 476,113 -> 487,113 -> 487,110 -> 486,110 -> 486,107 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
472,131 -> 472,134 -> 466,134 -> 466,141 -> 484,141 -> 484,134 -> 476,134 -> 476,131 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
482,144 -> 482,147 -> 480,147 -> 480,153 -> 489,153 -> 489,147 -> 488,147 -> 488,144 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
464,77 -> 464,78 -> 473,78 -> 473,77 |
|||
483,107 -> 483,110 -> 476,110 -> 476,113 -> 487,113 -> 487,110 -> 486,110 -> 486,107 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
473,74 -> 473,75 -> 480,75 |
|||
485,119 -> 491,119 -> 491,118 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
484,35 -> 488,35 |
|||
472,41 -> 472,45 -> 469,45 -> 469,48 -> 479,48 -> 479,45 -> 477,45 -> 477,41 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
464,77 -> 464,78 -> 473,78 -> 473,77 |
|||
453,59 -> 458,59 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
467,59 -> 472,59 |
|||
485,156 -> 498,156 -> 498,155 |
|||
472,41 -> 472,45 -> 469,45 -> 469,48 -> 479,48 -> 479,45 -> 477,45 -> 477,41 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
463,57 -> 468,57 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
472,131 -> 472,134 -> 466,134 -> 466,141 -> 484,141 -> 484,134 -> 476,134 -> 476,131 |
|||
464,77 -> 464,78 -> 473,78 -> 473,77 |
|||
462,53 -> 467,53 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
472,131 -> 472,134 -> 466,134 -> 466,141 -> 484,141 -> 484,134 -> 476,134 -> 476,131 |
|||
483,107 -> 483,110 -> 476,110 -> 476,113 -> 487,113 -> 487,110 -> 486,110 -> 486,107 |
|||
466,55 -> 471,55 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
482,128 -> 486,128 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
465,51 -> 470,51 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
487,32 -> 491,32 |
|||
476,71 -> 480,71 |
|||
490,29 -> 494,29 |
|||
494,169 -> 494,159 -> 494,169 -> 496,169 -> 496,167 -> 496,169 -> 498,169 -> 498,166 -> 498,169 -> 500,169 -> 500,167 -> 500,169 -> 502,169 -> 502,161 -> 502,169 |
|||
485,156 -> 498,156 -> 498,155 |
|||
478,35 -> 482,35 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
479,68 -> 483,68 |
|||
478,104 -> 478,103 -> 478,104 -> 480,104 -> 480,96 -> 480,104 -> 482,104 -> 482,97 -> 482,104 -> 484,104 -> 484,97 -> 484,104 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
472,41 -> 472,45 -> 469,45 -> 469,48 -> 479,48 -> 479,45 -> 477,45 -> 477,41 |
|||
490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,18 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,19 -> 498,23 -> 500,23 -> 500,16 -> 500,23 -> 502,23 -> 502,20 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,13 -> 506,23 -> 508,23 -> 508,21 -> 508,23 |
|||
470,57 -> 475,57 |
|||
465,91 -> 465,90 -> 465,91 -> 467,91 -> 467,84 -> 467,91 -> 469,91 -> 469,85 -> 469,91 -> 471,91 -> 471,88 -> 471,91 -> 473,91 -> 473,88 -> 473,91 -> 475,91 -> 475,88 -> 475,91 -> 477,91 -> 477,84 -> 477,91 -> 479,91 -> 479,90 -> 479,91 -> 481,91 -> 481,88 -> 481,91 |
|||
485,125 -> 489,125 |
@ -0,0 +1,2 @@ |
|||
728 |
|||
27623 |
@ -1,4 +1,4 @@ |
|||
#!/bin/sh |
|||
ffmpeg -threads 0 -pattern_type glob -i "img/*.pam" -r 60 \ |
|||
-vf "format=yuv444p,setpts=0.05*PTS,scale=iw*4:ih*4:flags=neighbor" \ |
|||
-vf "format=yuv444p,setpts=0.05*PTS,scale=iw*4:ih*4:flags=neighbor:eval=frame,pad=342*4:172*4:(ow-iw)/2:(oh-ih)/2" \ |
|||
anim.webm |
|||
|
Loading…
Reference in new issue