🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153818

Re: circle midpoint in Java ? + windowing

#153818
From: Tomek P.
Date: Fri, 17 May 2013 16:42
42 lines
2698 bytes
Radoslaw Jocz wrote:

> Witam ostatnio stwierdzilem ze w Javie SDK oraz Androidzie drawCircle jest
> dosc kiepsko zaimplementowane, tzn przy duzych okregach jest slaba
> dokladnosc. Przy malych okregach wszystko jest w porzadku.
> Zalezy mi na okienkowaniu i na szybkiej metodzie rysowania fragmentow
> okregu.
> 
> Przy malych okregach zamierzam rysowac standardowo uzywajac
> Graphics.drawOval oraz Canvas.drawCircle bez implementowania okienkowania,
> dla duzych okregow chce napisac okienkowanie i rysowanie tak zeby bylo
> dokladnie i w miare szybko, jednak szybkosc jest drugorzedna.
> 
> Mysle ze to beda przypadki gdy sa widoczne tylko 1 lub 2 oktety okregu.
> Sadze ze bedzie trzeba rysowac wykorzystujac drawLine
> w Androidzie byc moze warto uzyc drawPath lub drawLines aby zyskac na
> wydajnosci.
> 
> Jakies sugestje ?

Nie wiem jak w Androidzie, ale w Java SE rysuję elipsę przechodzącą przez 4 
punkty takim algorytmem:

1. Obliczam dziedzinę największej widocznej w okienku ćwiartki elipsy.
2. Dla tej dziedziny obliczam punkty Y. Mam wówczas dwie tablice int, jedną 
z X-ami, drugą z Y-ami.
3. Następnie Graphics.drawPolyline. Do wyrysowania pozostałych widocznych 
ćwiartek wykorzystuję te same punkty + transformacje.

Jestem bardzo zadowolony z rezultatu: 
http://www.youtube.com/watch?v=yTVgXuXrYVo

Problemem mogą być obliczenia, m. in. trzeba będzie obliczyć punkty 
przecięcia okręgu z granicami okna, aby wyznaczyć dziedzinę, w tym wziąć pod 
uwagę różne położenia okręgu względem okna...


Pozdrawiam
Tomek
-- 
http://tomaszpretki.pl
http://anothercharts.net
Technical Details
Message-ID: <51965dfe$0$26710$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!us.feeder.erje.net!usenet.blueworldhosting.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <57bf7d2e-434f-49a1-8be4-4a4eb7c3ad29@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!us.feeder.erje.net!usenet.blueworldhosting.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "Tomek P. " <find@me.pl>
Date: Fri, 17 May 2013 18:42:37 +0200
Subject: Re: circle midpoint in Java ? + windowing
Newsgroups: pl.comp.lang.java
References: <57bf7d2e-434f-49a1-8be4-4a4eb7c3ad29@googlegroups.com>
MIME-Version: 1.0
Lines: 42
Message-ID: <51965dfe$0$26710$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: d38-251.icpnet.pl
X-Trace: 1368808958 unt-rea-a-01.news.neostrada.pl 26710 77.65.38.251:45774
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 2416
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit