oneacab
oneacab
glass concrete
27 posts
MIXER SHOW AID
Don't wanna be here? Send us removal request.
oneacab · 2 months ago
Text
// Az aranymetszés aránya final float PHI = 1.618; int saveCount = 0; // Mentések számlálója String savePath = "C:\Users\hp\Desktop\sketch_220317a\ixek\"; // Mentési mappa ArrayList positions = new ArrayList<>(); // Tárolja az X-ek helyét void setup() { size(400, 570); // Ablak mérete background(255); // Fehér háttér textSize(32); // Az "X" mérete textAlign(CENTER, CENTER); // Középre igazítás fill(10); // X szín noLoop(); // Csak egyszer fut le, kivéve ha újraindítjuk generateImage(); } void draw() { // A kép generálása a setup() vagy a space lenyomásakor történik } void generateImage() { background(255); // Új háttér, hogy ne rajzoljon egymásra positions.clear(); // Töröljük az előző pozíciókat for (int i = 0; i < 6; i++) { PVector pos; do { float x = generateGoldenRatio(width); float y = generateGoldenRatio(height); pos = new PVector(x, y); } while (isOverlapping(pos)); // Ha fedésben van másik X-szel, új helyet keres positions.add(pos); // Hozzáadjuk a listához text("X", pos.x, pos.y); // Kirajzoljuk az X-et // A távolság kiírása úgy, hogy ne lógjon ki a képből String distanceText = "(" + int(pos.x) + " px, " + int(pos.y) + " px)"; PVector textPos = adjustTextPosition(pos); textSize(16); // Kisebb betűméret a távolság kiírásához text(distanceText, textPos.x, textPos.y); positions.add(textPos); // A szöveg pozícióját is mentjük, hogy ne legyen fedés textSize(32); // Visszaállítjuk az X méretét } } void keyPressed() { if (key == ' ') { // Space lenyomására újragenerálja a képet generateImage(); } else if (key == ENTER || key == RETURN) { // Enter lenyomására menti a képet saveImage(); } } // Generál egy pozíciót az aranymetszés szabályai szerint float generateGoldenRatio(float max) { float goldenSection = max / PHI; return random(1) > 0.5 ? random(goldenSection, max) : random(0, goldenSection); } // Ellenőrzi, hogy egy adott pozíció túl közel van-e másik X-hez vagy szöveghez boolean isOverlapping(PVector newPos) { float minDist = 40; // Minimum távolság az X-ek és szövegek között for (PVector pos : positions) { if (newPos.dist(pos) < minDist) { return true; // Fedés van } } return false; } // Beállítja a távolság szöveg helyét úgy, hogy ne lógjon ki a képből PVector adjustTextPosition(PVector pos) { float textOffsetY = 30; // Alapból az X alá írjuk float textX = pos.x; float textY = pos.y + textOffsetY; // Ha túl közel van az alsó széléhez, akkor fölé írjuk if (textY > height - 10) { textY = pos.y - textOffsetY; } // Ha túl közel van a bal oldalhoz, jobbra toljuk if (textX < 40) { textX += 20; } // Ha túl közel van a jobb oldalhoz, balra toljuk if (textX > width - 40) { textX -= 20; } return new PVector(textX, textY); } // Kép mentése megadott könyvtárba void saveImage() { String filename = savePath + "generated_image_" + saveCount + ".jpg"; save(filename); println("Kép elmentve ide: " + filename); saveCount++; }
0 notes
oneacab · 1 year ago
Text
0 notes
oneacab · 3 years ago
Photo
Tumblr media
4 notes · View notes
oneacab · 9 years ago
Photo
Tumblr media
3 notes · View notes
oneacab · 9 years ago
Photo
Tumblr media
1 note · View note
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 12 years ago
Photo
Tumblr media
0 notes
oneacab · 13 years ago
Photo
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
0 notes
oneacab · 13 years ago
Photo
Tumblr media Tumblr media Tumblr media
0 notes