मेरे पास एक पथ है जो एक वृत्त खींचता है जिसका मूल "पश्चिम" पक्ष में है, फिर मैं ऊपर और नीचे को हटाकर विभाजित करता हूं। तब मुझे तीन उप-पथ मिलते हैं:

  1. ऊपर-बाएँ 1/4 वृत्त
  2. दायां आधा वृत्त
  3. नीचे-बाएँ 1/4 वृत्त

लेकिन नेत्रहीन 1 और 3 भी फ़्लिप किए गए 2, 1 और 3 की तरह दिखते हैं, वास्तव में दो उप-पथ हैं। मैं इसे कैसे अनुकूलित करूं? मैंने चिकनी (), फ़्लैटन() और सरलीकृत() की कोशिश की है और सभी काम नहीं करते हैं।

यहाँ paperjs

0
Antony Ng 5 जिंदा 2021, 05:03
यह समझना मुश्किल है कि आप क्या करने की कोशिश कर रहे हैं, क्या आप शायद यह बता सकते हैं कि आप क्या हासिल करने की कोशिश कर रहे हैं (उदाहरण के लिए पहले/बाद में)?
 – 
sasensi
5 जिंदा 2021, 10:48
हो सकता है कि मैं अपने प्रश्न को सरल बना सकता हूं, अगर मेरे पास एक यौगिक पथ है जो दो उप-पथ ए और बी से बना है, तो बी की शुरुआत ए के अंत के समान है, मैं पथ को उस पथ के रूप में कैसे सरल बना सकता हूं जो शुरू होता है ए की शुरुआत और बी के अंत के साथ समाप्त?
 – 
Antony Ng
6 जिंदा 2021, 03:29

1 उत्तर

सबसे बढ़िया उत्तर

आपके सरलीकृत मामले के आधार पर, आपको बस अपने सभी उप पथ खंडों से बना एक नया पथ बनाना होगा। परिणामी पथ को थोड़ा सा अनुकूलित करने के लिए, आप पथ B के पहले खंड को छोड़ सकते हैं और केवल इसके हैंडल को बाहर रख सकते हैं, क्योंकि यह पथ A के अंतिम खंड के समान है। आपके उपयोग के मामले के आधार पर, आप उसी तर्क के साथ, पथ B के अंतिम खंड को छोड़ सकते हैं क्योंकि यह पथ A के पहले खंड के समान है और सुनिश्चित करें कि परिणामी पथ closed पर सेट है।

यहाँ एक स्केच एक संभव कार्यान्वयन का प्रदर्शन है।

const compoundPath = project.importJSON(
    ['CompoundPath', { 'applyMatrix': true, 'children': [['Path', { 'applyMatrix': true, 'segments': [[50, 700], [0, 700], [0, 600], [50, 600]] }], ['Path', { 'applyMatrix': true, 'segments': [[50, 600], [100, 600], [100, 700], [50, 700]] }]] }]
);
compoundPath.strokeColor = 'black';
project.activeLayer.addChild(compoundPath);

const subPaths = [];
compoundPath.children.forEach((child, i) => {
    subPaths.push(
        child
            .clone()
            .translate(0, 150)
            .addTo(project.activeLayer)
    );
});

const assembledPath = assembleSubPaths(subPaths);
assembledPath.strokeColor = 'black';

function assembleSubPaths(subPaths) {
    const path = new Path();
    subPaths.forEach((subPath) => {
        subPath.segments.forEach((segment, segmentIndex) => {
            const isFirstSegment = segmentIndex === 0;
            if (path.segments.length === 0 || !isFirstSegment) {
                path.add(segment);
            } else {
                path.lastSegment.handleOut = segment.handleOut;
            }
        });
        subPath.remove();
    });
    return path;
}

0
sasensi 6 जिंदा 2021, 12:16