bu yol içindeki bir NSRect
kısmı tarafından belirlenen NSBezierPath
bir yığın kaldırmak mümkün mi?bir NSBezierPath üzerinden bir dikdörtgen kesin
7
A
cevap
5
Kesinlikle. Bu yapmak clipping regions budur: Açıklamalarda belirtildiği gibi
// Save the current clipping region
[NSGraphicsContext saveGraphicsState];
NSRect dontDrawThisRect = NSMakeRect(x, y, w, h);
// Either:
NSRectClip(dontDrawThisRect);
// Or (usually for more complex shapes):
//[[NSBezierPath bezierPathWithRect:dontDrawThisRect] addClip];
[myBezierPath fill]; // or stroke, or whatever you do
// Restore the clipping region for further drawing
[NSGraphicsContext restoreGraphicsState];
9
, Bay Caswell cevabı aslında OP ne sorduğunu tersidir. Bu kod örneği, bir daireden (veya başka bir bezier yolundaki herhangi bir bezier yolundan) bir rect'in nasıl kaldırılacağını gösterir. hüner kaldırmak istediğiniz yolu "ters" olduğunu, daha sonra özgün yolun sonuna ekler:
NSBezierPath *circlePath = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(0, 0, 100, 100)];
NSBezierPath *rectPath = [NSBezierPath bezierPathWithRect:NSMakeRect(25, 25, 50, 50)];
rectPath = [rectPath bezierPathByReversingPath];
[circlePath appendBezierPath:rectPath];
Not: Bezier yolları birbirini kestiği takdirde işler biraz yanıltıcıdır olsun. Sonra uygun "sarma kuralı" ayarlamalısınız.
İlgili konular
- 1. UIView'de bir dikdörtgen çizimi
- 2. Bitmap anahatından NSBezierPath oluşturma
- 3. Bir ara yüzü arka plan rengini arayüzey üzerinden kesin bir hex kullanarak nasıl ayarlayacağınız?
- 4. Kesin Subimplicits
- 5. NSBezierPath eğrisini anlamak için zor bir zaman geçirmeToPoint: yöntem
- 6. Neden Helvetica Neue Bold glifleri neden NSBezierPath öğesinde normal bir alt yol çizmiyor?
- 7. ModelSim hata kodlarının kesin bir listesini nerede bulabilirim?
- 8. WCF üzerinden bir Tuple nesnesi mi gönderiliyor?
- 9. Çarpma piton bir çarpma kesin bir sonuç elde edebilirsiniz nasıl
- 10. OpenGL ES'de nasıl renkli bir dikdörtgen çizilir?
- 11. Nasıl yuvarlatılmış bir dikdörtgen çizmek için C#
- 12. Tuval duvarından bir dikdörtgen çıkıntısı oluşturma
- 13. Rastgele şekilli çokgenlere bir dikdörtgen çizme
- 14. HTML Tuvalinde yuvarlak bir Dikdörtgen nasıl çizilir?
- 15. D3.js - Bir dikdörtgen oluşturuluyor mu?
- 16. Rafael.js kullanarak kesik çizgilerle bir dikdörtgen çizme
- 17. Android - Basit bir dikdörtgen şekli oluşturulamıyor ... DesteklenmeyenÖdemeException?
- 18. Döndürülmüş bir dikdörtgen ile görüntü nasıl kırpılır?
- 19. Resimdeki dikdörtgen çizimi - dikdörtgen alanın nasıl sınırlandırılacağı?
- 20. NSBezierPath yuvarlatılmış köşenin kötü köşeleri var
- 21. Kesin doğruluk uyarıları C++
- 22. Dikdörtgen çarpışma
- 23. Bir parametre üzerinden jmgr
- 24. Bir NSMutableDictionary üzerinden döngü
- 25. Dikdörtgen form
- 26. Sed maçı kesin
- 27. /fp arasındaki fark: Kesin ve/fp: Kesin mi?
- 28. Bir AVCaptureVideoPreviewLayer'ın üstünde bir dikdörtgen çizimi yapmak mümkün mü?
- 29. Bir görüntü ile bir dikdörtgen doldurmak mümkün olduğum tek görüntü
- 30. Bir düzende mutlak ortada bir dikdörtgen kutu göster
NSRectClip – sergeyne
sayesinde @sergeyne, düzeltilmiş fonksiyonunun doğru adıdır! –
NSRectClip doğru değil. Geçerli clippath ile kesişir. Bu yüzden uyguladıktan sonra sadece dontDrawThisRect içindeki içerik çekilir, bunun yerine kırpma bölgesinden bu alan çıkarılır. Yani OP'nin istediği şeyin tam tersi. –