From 9158b4294144e1990b6a2438fa5aa16352218695 Mon Sep 17 00:00:00 2001 From: dragdra Date: Fri, 11 Apr 2025 17:47:43 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=B0=ED=94=BD=20gradient=20=EC=83=89?= =?UTF-8?q?=EC=83=81=20=EA=B5=AC=ED=95=98=EB=8A=94=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DIC_0000A.json | 6 ++--- gpdpScoring.js | 61 ++++++++++++++------------------------------------ z.xbook | 2 +- 3 files changed, 21 insertions(+), 48 deletions(-) diff --git a/DIC_0000A.json b/DIC_0000A.json index 37bec35..3de8024 100644 --- a/DIC_0000A.json +++ b/DIC_0000A.json @@ -572,9 +572,9 @@ }, "7": { "type": "gradient", - "ele": "//Layer/Shapes/shape/*[starts-with(name(), 'gradiant')]", - "startColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_start_color/@value", - "endColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_end_color/@value", + "ele": "//Layer/Shapes/Shape", + "startColor": "gradient_start_color/@value", + "endColor": "gradient_end_color/@value", "value": { "startColor": "347813", "endColor": "041177" diff --git a/gpdpScoring.js b/gpdpScoring.js index df8d2eb..05e6cd5 100644 --- a/gpdpScoring.js +++ b/gpdpScoring.js @@ -320,57 +320,30 @@ function getGpdpScore(gpdpData, scoringJson, index) { scoringResult[key] = 0; console.log("❌ 정답 없음:", rightAnswer); } - // let posX = scoringData[key].posX; - // let posY = scoringData[key].posY; - - // let answerWidth = rightAnswer["width"]; - // let answerHeight = rightAnswer["height"]; - - // let width = xpath.select(posX, gpdpXmlDoc); - // let height = xpath.select(posY, gpdpXmlDoc); - // width = Math.round(width); - // height = Math.round(height); - - // console.log(`width:${answerWidth},${width}, height: ${answerHeight},${height}`); - // if (answerWidth === width && answerHeight === height) { - // totalScore += point; - // scoringResult[key] = point; - // console.log("same size"); - // } - // else { - // scoringResult[key] = 0; - // console.log("different size"); - // } } else if (type == "gradient") { - let getStartColorXpath = scoringData[key].startColor; - let getEndColorXpath = scoringData[key].endColor; + const items = xpath.select(ele, gpdpXmlDoc); + const startColorXpath = scoringData[key].startColor; + const endColorXpath = scoringData[key].endColor; + let matched = false; - let answerStartColor = rightAnswer["startColor"]; - let answerEndColor = rightAnswer["endColor"]; + for ( const item of items) { + const startColor = parseColorToHex(xpath.select1(startColorXpath, item)?.value); + const endColor = parseColorToHex(xpath.select1(endColorXpath, item)?.value); - let startColor = xpath.select1(getStartColorXpath, gpdpXmlDoc)?.value; - let endColor = xpath.select1(getEndColorXpath, gpdpXmlDoc)?.value; + console.log(startColor + ":" + rightAnswer["startColor"], endColor + ":" + rightAnswer["endColor"]); - // console.log(start[0].value, end[0].value); - if (start.length == 0 || end.length == 0) { - console.log("gradient color not found"); - scoringResult[key] = 0; - continue; + if ( startColor === rightAnswer["startColor"] && endColor === rightAnswer["endColor"]) { + totalScore += point; + scoringResult[key] = point; + matched = true; + console.log("✅ 정답 일치:", rightAnswer); + break; + } } - - const startHexColor = parseColorToHex(start[0].value); - const endHexColor = parseColorToHex(end[0].value); - console.log(startHexColor + ":" + answerStartColor, endHexColor + ":" + answerEndColor); - - if (startHexColor === answerStartColor && endHexColor === answerEndColor) { - totalScore += point; - scoringResult[key] = point; - console.log("same color"); - } - else { + if (!matched) { scoringResult[key] = 0; - console.log("different color"); + console.log("❌ 정답 없음:", rightAnswer); } } // 그림자 속성이 있는지 여부 파악해서 그림자 속성 별로 점수 1 점씩 부여 diff --git a/z.xbook b/z.xbook index 8da343c..b336228 100644 --- a/z.xbook +++ b/z.xbook @@ -1 +1 @@ -[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"//Layer//op_points"}] \ No newline at end of file +[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape[*[starts-with(name(), 'gradient')]]"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape"}] \ No newline at end of file