Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Core Graphics i rysowanie punktami


  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 macsurf

macsurf
  • 104 postów
  • SkądKołobrzeg

Napisano 17 lipca 2014 - 20:16

Jest możliwość rysowania punktami ? Nie ma takiej funkcji więc może jest jakieś obejście ? tylko nie na zasadzie tworzenia małych punktów z funkcji rysujących prostokąty.

#2 namonaihito

namonaihito
  • 11 postów

Napisano 27 lipca 2014 - 17:03

Mógłbyś dokładniej opisać jaki efekt chcesz osiągnąć? Jest kilka sposobów na rysowanie punktów i bardziej złożonych kształtów.

#3 macsurf

macsurf
  • 104 postów
  • SkądKołobrzeg

Napisano 28 lipca 2014 - 13:08

Tu chodzi tylko o ustawianie pixelow na odpowiednich wspolrzednych a efekt to już jest kwestia co chcemy narysować, czy to będzie sinusoida, koło, elipsa to nie ma znaczenia. Chodzi tylko o rysowanie pixelem. Wiem, że w CG pikselem nie można rysować po polu graficznym ( contex ).

#4 namonaihito

namonaihito
  • 11 postów

Napisano 28 lipca 2014 - 18:57

Dlatego pytam o efekt. Osobiście pisałem własną klasę rysowania wykresów i do tego świetnie nadaje się CAShapeLayer, który pozwala na rysowanie linii, punktów i dowolnych kształtów. Da się go wykorzystać do rysowania pojedynczymi punktami (mogą być wielkości pixela)

https://developer.ap.../Reference.html

Osobiście bardzo mi się podoba możliwość animowania ścieżki za pomocą CABasicAnimation.

Jeśli jednak wymogiem jest Core Graphics, to mam za mało doświadczenia.

#5 macsurf

macsurf
  • 104 postów
  • SkądKołobrzeg

Napisano 29 lipca 2014 - 11:24

No tak tylko to są krzywe beziera, do tego korzystam z klasy UIBezierPath, ma właściwość CGPath- więc nie ma problemów z dołączaniem krzywych do CG. Mi chodzi o rysowanie punktami, aby mieć kontrole nad każdym pojedyńczym pixelem, bez tworzenia pośrednich pixeli za pomocą krzywych beziera. Core Graphis jeśli chodzi o możliwości to prawie to samo co w komponent graficzny w Javovym Swingu, tam też nie można operować na pojedyńczych pikselach, można zrobić to pośrednio ale to odbija się na wydajności. W bibliotece GD jak pamiętam jeszcze w PHP operowałem na pojedyńczym punkcie. GD oczywiście jest też dla C. Czyli pozostaje utworzenie obrazu w bibliotece GD, narysować sobie na bitmapie rysunek pixel po pixelu i taki obrazek odczytać w CG. No cóż wydajność tego rozwiązania nie będzie oszałamiająca, więc może jednak istnieje jakiś sposób na w miarę optymalne rozwiązanie :)

#6 namonaihito

namonaihito
  • 11 postów

Napisano 29 lipca 2014 - 11:46

UIBezierPath pomaga w tworzeniu ścieżek, ale nie jest wymagany. Można łączyć i tworzyć ścieżki (punkty) bez jego pomocy. ShapeLayer jest stworzony do tego i w porównaniu z modyfikacjami zwykłego layera jest o wiele wydajniejszy (korzystałem z niego aby zoptymalizować na iPhone4 kilka rzeczy). Nie wiem jak bardzo skomplikowane operacje trzeba by było zrobić, żeby mieć problemy z wydajnością. Jako że chodzi o ogólne rozwiązanie problemu, a nie konkretny efekt to już bardziej nie umiem pomóc. Jeśli znajdziesz jakieś rozwiązanie to chętnie je poznam :)




Użytkownicy przeglądający ten temat: 4

0 użytkowników, 4 gości, 0 anonimowych