Article View: pl.comp.lang.java
Article #153818Re: circle midpoint in Java ? + windowing
From: Tomek P.
Date: Fri, 17 May 2013 16:42
Date: Fri, 17 May 2013 16:42
42 lines
2698 bytes
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-mailReferences:
<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