Cover
 This is the archive Discourse for the Processing (ALPHA) software. Please visit the new Processing forum for current information.
 Processing 1.0 _ALPHA_    Programming Questions & Help    Programs (Moderators: fry, REAS)    Perfect lines « Previous topic | Next topic »

 Pages: 1
 Author Topic: Perfect lines  (Read 448 times)
firdosh

 Perfect lines « on: Jun 7th, 2004, 4:26pm »

i am drawing an animated line between 2 circles but i cant get a perfect line since i cant pass in doubles as param to the line( ). Any one know a work around this ??
justo

 Re: Perfect lines « Reply #1 on: Jun 7th, 2004, 5:36pm »

um, i'm not exactly sure what you mean by a "perfect line," but a float has *far* more resolution than even the best anti-aliased renderer could ever provide.

if you just want smoother lines try sticking smooth() in your setup() method.
kevinP

 Re: Perfect lines « Reply #2 on: Jun 7th, 2004, 7:05pm »

on Jun 7th, 2004, 5:36pm, justo wrote:
 if you just want smoother lines try sticking smooth() in your setup() method.

Unless you are using non-filled shapes in which case the smoothed ellipses look worse (006.

Here's my quick try (the strokeWeight also still has some bugs):

Code:
 void setup() {   size(400, 400);   ellipseMode(CENTER_DIAMETER);   noFill();   smooth(); }   void loop() {   background(70, 70, 40);   translate(width/2, height/2);     // center of each circle   float xCenterA = mouseX - (width/2);   float yCenterA = mouseY - (height/2);   float xCenterB = 2 * xCenterA;   float yCenterB = 2 * yCenterA;     float angle = atan2( yCenterB - yCenterA, xCenterB - xCenterA ); // angle   int rad = 15;            // radius of circles     // endpoints of connecting line   float xPointA = xCenterA + rad * cos(angle);   float yPointA = yCenterA + rad * sin(angle);   float xPointB = xCenterB - rad * cos(angle);   float yPointB = yCenterB - rad * sin(angle);     push();   translate(xCenterA, yCenterA); // draw A circle   stroke(25, 200, 100);   ellipse(0,0, rad * 2, rad * 2);   pop();     push();   translate(xCenterB, yCenterB); // draw B circle   stroke(220, 100, 25);   ellipse(0,0, rad * 2, rad * 2);   pop();       strokeWeight(2);     // draw connecting line   stroke(25, 30, 25);   line(xPointA, yPointA, xPointB, yPointB);   noStroke(); }

Kevin Pfeiffer
 Pages: 1

 Forum Jump: ----------------------------- Discussion -----------------------------  - Community, Collaboration, Status   - Events, Publications, Propaganda   - General Processing Discussion ----------------------------- Programming Questions & Help -----------------------------  - Syntax => Programs   - Integration ----------------------------- Topics & Contributions -----------------------------  - Tools   - Responsive Form, Games   - Information Visualization   - Simulation, Artificial Life   - Tangible Computing   - Automated Systems   - Sound   - Video, Camera   - Beyond Categories ----------------------------- Suggestions -----------------------------  - Software Suggestions   - Website, Reference, Example Suggestions ----------------------------- Bugs -----------------------------  - Software Bugs   - Website, Reference, Example Bugs   - Bug Fixes, Implemented Suggestions ----------------------------- Teaching -----------------------------  - Course Blueprints   - Theory and Practice « Previous topic | Next topic »