123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- class Bounder {
- int state;
- float h;
- float angle, arcangle;
-
- float angle(PVector v1, PVector v2) {
- float a = atan2(v2.y, v2.x) - atan2(v1.y, v1.x);
- if (a < 0) a += TWO_PI;
- return a;
- }
- PVector p1, p2, p3, p4;
- void leftclick() {
- if (state < 3) state++;
- else state = 1;
- if (state == 1) {
- p1 = new PVector(mouseX, mouseY);
- loop();
- }
- if (state == 2) {
- p2 = new PVector(mouseX, mouseY);
- }
- if (state == 3) {
- h = -p2.dist(new PVector(mouseX, mouseY));
- noLoop();
- }
- }
-
- void rightclick(){
- reset();
- }
- void reset(){
- boolean redrawthis = (state == 3) ? true : false;
- state = 0;
- if(redrawthis) redraw();
- }
- void update() {
- if (state == 2) {
- h = -p2.dist(new PVector(mouseX, mouseY));
- }
- }
- void display() {
- if (state > 0) {
- fill(0);
- noStroke();
- circle(p1.x, p1.y, 5);
- }
- if (state == 1) {
- stroke(1);
- line(p1.x, p1.y, mouseX, mouseY);
- }
- if (state > 1) {
- fill(0);
- noStroke();
- circle(p2.x, p2.y, 5);
- fill(255, 100);
- stroke(1);
- pushMatrix();
- translate(p1.x, p1.y);
- rotate(angle(new PVector(0, width), PVector.sub(p2, p1)));
- rect(0, 0, h, p1.dist(p2));
- p3 = new PVector(screenX(h, 0), screenY(h, 0));
- p4 = new PVector(screenX(h, p1.dist(p2)), screenY(h, p1.dist(p2)));
- popMatrix();
- fill(0);
- noStroke();
- circle(p3.x, p3.y, 5);
- circle(p4.x, p4.y, 5);
- }
- }
-
- void compile(boolean Execute) {
-
- if (Execute) {
- state = 0;
- covers.add(new Cover(p1, p2, p4, p3));
- }
-
- PVector ptopmid = new PVector((p1.x + p2.x)/2, (p1.y + p2.y)/2);
- PVector pbotmid = new PVector((p3.x + p4.x)/2, (p3.y + p4.y)/2);
-
- /*
- links: p1 -> ptopmid -> pbotmid -> p3
- rechts: ptopmid -> p2 -> p4 -> pbotmid
- */
- int leftLeftTopX = (int)map(p1.x, 0, width, 0, images[imageNo].width);
- int leftLeftTopY = (int)map(p1.y, 0, height, 0, images[imageNo].height);
- int leftRightTopX = (int)map(ptopmid.x, 0, width, 0, images[imageNo].width);
- int leftRightTopY = (int)map(ptopmid.y, 0, height, 0, images[imageNo].height);
- int leftRightBotX = (int)map(pbotmid.x, 0, width, 0, images[imageNo].width);
- int leftRightBotY = (int)map(pbotmid.y, 0, height, 0, images[imageNo].height);
- int leftLeftBotX = (int)map(p3.x, 0, width, 0, images[imageNo].width);
- int leftLeftBotY = (int)map(p3.y, 0, height, 0, images[imageNo].height);
-
- int rightLeftTopX = leftRightTopX;
- int rightLeftTopY = leftRightTopY;
- int rightRightTopX = (int)map(p2.x, 0, width, 0, images[imageNo].width);
- int rightRightTopY = (int)map(p2.y, 0, height, 0, images[imageNo].height);
- int rightRightBotX = (int)map(p4.x, 0, width, 0, images[imageNo].width);
- int rightRightBotY = (int)map(p4.y, 0, height, 0, images[imageNo].height);
- int rightLeftBotX = leftRightBotX;
- int rightLeftBotY = leftRightBotY;
-
-
- //beispielcommands:
- //for f in ./*.jpg; do convert "$f" \( -clone 0 -fill black -colorize 100 -fill white -draw "polygon 3218,2414 4882,2414 4882,2621 3218,4771" \) -alpha off -compose copy_opacity -composite -trim +repage "$f"_left.jpg; done
- //for f in ./*.jpg; do convert "$f" \( -clone 0 -fill black -colorize 100 -fill white -draw "polygon 3218,2414 4882,2414 4882,2621 3218,4771" \) -alpha off -compose copy_opacity -composite -trim +repage "$f"_right.jpg; done
-
- String folderName = String.valueOf((int)random(100000000));
- String cmdleft = "for f in ./*.jpg; do convert \"$f\" \\( -clone 0 -fill black -colorize 100 -fill white -draw \"polygon " + leftLeftTopX + "," + leftLeftTopY + " " + leftRightTopX + "," + leftRightTopY + " " + leftRightBotX + "," + leftRightBotY + " " + leftLeftBotX + "," + leftLeftBotY + "\" \\) -alpha off -compose copy_opacity -composite -trim +repage " + folderName + "/\"$f\"_left.jpg; done";
- String cmdright = "for f in ./*.jpg; do convert \"$f\" \\( -clone 0 -fill black -colorize 100 -fill white -draw \"polygon " + rightLeftTopX + "," + rightLeftTopY + " " + rightRightTopX + "," + rightRightTopY + " " + rightRightBotX + "," + rightRightBotY + " " + rightLeftBotX + "," + rightLeftBotY + "\" \\) -alpha off -compose copy_opacity -composite -trim +repage " + folderName + "/\"$f\"_right.jpg; done";
- String cmdpdf = "convert " + folderName + "/*.jpg notizheft.pdf";
- println(cmdleft);
- println(cmdright);
- //execl("/bin/sh", "-c", "cd", (const char *)0);
- //exec("/bin/sh -c cd " + folderURI + " && " + cmdleft);
-
- //String[] runConvert = { "/bin/bash", "-c", "cd " + folderURI + " && mkdir " + folderName + " && " + cmdleft + " && " + cmdright + " && " + cmdpdf };
- String[] runConvert = { "/bin/bash", "-c", "cd " + folderURI + " && mkdir " + folderName + " && " + cmdleft + " && " + cmdright };
-
-
- if (Execute) exec(runConvert);
-
-
-
-
-
-
- //println(leftLeftTopX + "," + leftLeftTopY + " " + leftRightTopX + "," + leftRightTopY + " " + leftRightBotX + "," + leftRightBotY + " " + leftLeftBotX + "," + leftLeftBotY);
- //println(rightLeftTopX + "," + rightLeftTopY + " " + rightRightTopX + "," + rightRightTopY + " " + rightRightBotX + "," + rightRightBotY + " " + rightLeftBotX + "," + rightLeftBotY);
-
- /*
- println((int)map(p1.x, 0, width, 0, images[imageNo].width));
- println((int)map(p1.y, 0, height, 0, images[imageNo].height));
- println((int)map(p2.x, 0, width, 0, images[imageNo].width));
- println((int)map(p2.y, 0, height, 0, images[imageNo].height));
- println((int)map(p3.x, 0, width, 0, images[imageNo].width));
- println((int)map(p3.y, 0, height, 0, images[imageNo].height));
- println((int)map(p4.x, 0, width, 0, images[imageNo].width));
- println((int)map(p4.y, 0, height, 0, images[imageNo].height));*/
- }
- }
|