Chcę zbudować program CGPathRef
programowo oparty na współrzędnych Słońca w różnych punktach dnia. Obliczanie punktów nie jest problemem, ale chcę, aby CGPathRef
był gładki i pomyślałby, że byłoby właściwe.Co oznaczają parametry dla CGPathAddCurveToPoint?
Rozumiem parametry ścieżki, transformacji, x i y, ale nie jestem pewien co do innych. Według dokumentacji Apple są one punktami kontrolnymi i domyślam się, że wyglądają tak, jak w programie do rysowania wektorów, w którym można dostosować sposób, w jaki krzywa przechodzi przez punkt.
Moje pytanie brzmi: jak wybrać punkty, które odnoszą się do moich współrzędnych, nie wiedząc, jakie są te współrzędne przed czasem? Myślę, że może po prostu odjąć ustaloną kwotę od każdego z pierwszych punktów kontrolnych i dodać taką samą ilość do drugiego punktu kontrolnego, ale to brzmi dla mnie w uproszczeniu. Czy istnieje standardowa metoda generowania punktów kontrolnych, które "mają sens" dla gładkiej krzywej?
void CGPathAddCurveToPoint (
CGMutablePathRef path,
const CGAffineTransform *m,
CGFloat cp1x,
CGFloat cp1y,
CGFloat cp2x,
CGFloat cp2y,
CGFloat x,
CGFloat y
);
Ponieważ znalazłem to pytanie, mając ten problem: Jeśli jesteś przyzwyczajony do oprogramowania graficznego wektorów, taki jak Illustrator, znaczenie punktów kontrolnych jest lekko różni się od tego, co jest używane w Core Graphics. Jeśli masz ścieżkę [(a1, p1, b1), (a2, p2, b2), ...] gdzie pi są punktami, a ai są punktami kontrolnymi, które są wizualnie z nimi połączone, odpowiednia ścieżka w Core Graphics zacznie się z [(b1, p2, a2), ...] (po moveToPoint dla p1). Mam nadzieję, że jest to pomocne dla kogoś. – mrueg