2012-02-27 12 views
8

मैं फिर से दो प्रश्न के साथ यहाँ हूँ, दोनों परस्पर संबंधितनक्काशी प्रभाव

  1. मैं कोर ग्राफिक्स के साथ उभरे लाइनों आकर्षित करने के लिए चाहते हैं। क्या कोई मुझे सुझाव दे सकता है कि स्पर्श घटनाओं पर खींची गई रेखा के लिए आंतरिक छाया कैसे दें?
  2. बाहरी छाया को चित्रित करने के लिए भी। छाया के बीच में ओवरलैप खींचा गया। और काले रंग के अलावा रंगों के साथ खींची गई रेखा कीड़ा की तरह है .. क्या कोई मेरी मदद कर सकता है? निम्नलिखित छवि बताती है कि प्रश्न 2: enter image description here छाया बनाने के लिए मुझे क्या समझाना है। वे कुछ बिंदुओं पर काला कर

मैं कोड है कि मैं लाइनों आकर्षित करने के लिए उपयोग कर रहा हूँ ..

for (int i=0; i<[currentPath count]; i++) 
    { 
     CGPoint mid1 = [[self midPoint:[currentPath objectAtIndex:i+1] :[currentPath objectAtIndex:i]] CGPointValue]; 
     CGPoint mid2 = [[self midPoint:[currentPath objectAtIndex:i+2] :[currentPath objectAtIndex:i+1]] CGPointValue]; 
     CGContextMoveToPoint(context, mid1.x, mid1.y); 
     CGContextAddQuadCurveToPoint(context, [[currentPath objectAtIndex:i+1] CGPointValue].x, [[currentPath objectAtIndex:i+1] CGPointValue].y, mid2.x, mid2.y); 
     CGContextSetShadow(context, CGSizeMake(-2, -2), 3); 

     CGContextSetLineCap(context, kCGLineCapRound); 
     CGContextSetStrokeColorWithColor(context,[color CGColor]);    
     CGContextSetLineWidth(context, linewidth);    
     CGContextStrokePath(context); 
     i+=2; 
    } 
+2

कृपया घुड़सवारों में प्रश्न-चिह्नों का उपयोग करने से बचें। – Till

+0

@ अभी तक ठीक है? – DivineDesert

+0

कृपया अपना ड्राइंग कोड दिखाएं। जब तक आप ऐसा नहीं करते हैं, हम केवल वही अनुमान लगा सकते हैं जो आप कर रहे हैं। – sosborn

उत्तर

4

मैंने पाया मेरी समाधान .. समस्या बहुत मूर्खतापूर्ण था ... मैं हर यात्रा जो मुद्दा बनाने गया था .. अब मैं भी अल्फा तो कम 1 के साथ आकर्षित कर सकते हैं पर पथ भड़काने था ..

CGContextStrokePath(context); 

यह लाइन लूप के लिए बाहर जाती है .. और सब ठीक काम कर रहे हैं :)

0

ऐसा लगता है कि आप हलकों की एक श्रृंखला का उपयोग करके पथ बना रहे जोड़ने कर रहा हूँ।

समस्या यह है कि आपने व्यक्तिगत बिंदुओं पर छाया निर्धारित की है, और यही कारण है कि आपको अजीब प्रभाव मिल रहे हैं।

एक संभावित समाधान - पथ पर एक छाया डालें, पथ पर डालें: आपके द्वारा खींची गई रेखा को डुप्लिकेट करें, इसे एक अलग रंग में खींचें, इसे ऑफसेट करें और अपनी वास्तविक रेखा के नीचे रखें।

वैकल्पिक रूप से, यदि आप परतों का उपयोग कर रहे हैं - छाया पथों पर एक नज़र डालें।

+1

मैं मंडलियों की एक श्रृंखला का उपयोग करके पथ नहीं खींच रहा हूं, क्योंकि मैं रेखाओं में छाया जोड़ रहा हूं, और रेखाओं को सरणी के साथ खींचा जाता है, प्रत्येक छोटी रेखा छाया से ढकी होती है और इस प्रकार आप मंडलियों की श्रृंखला देख सकते हैं .. – DivineDesert

+0

प्रभाव के समान है जब मैं 1 से कम अल्फा मानों के साथ रेखाएं खींच रहा था .. @Abizern – DivineDesert

3

अपनी ओवरलैपिंग छाया के लिए, आप पारदर्शिता परत को पहले मिश्रित करना चाहते हैं। क्वार्ट्ज 2 डी प्रोग्रामिंग गाइड में Transparency Layers देखें।

+0

आपने जो कहा वह ठीक है .. लेकिन मैं पारदर्शिता परतों को कहां जोड़ूंगा .. चूंकि मैं स्पर्श पर छोटी रेखाएं खींच रहा हूं घटनाओं .. प्रत्येक लाइन पारदर्शिता परत में जोड़ा नहीं जा सकता .. मैंने पहले यह कोशिश की .. लेकिन कोई सकारात्मक समाधान के साथ .. अगर मैं गलत कर रहा था तो मुझे नहीं पता ..लेकिन मेरा भ्रम पारदर्शिता परतों को चित्रित कर रहा है ?? – DivineDesert