3 วิธีในการเปลี่ยนที่มาของกราฟิก SVG
เผยแพร่แล้ว: 2023-02-26หากคุณต้องการเปลี่ยนที่มาของ กราฟิก SVG มีสองสามวิธีที่คุณสามารถใช้ได้ อย่างแรกคือการใช้แอตทริบิวต์การแปลง วิธีนี้จะช่วยให้คุณเปลี่ยนพิกัด x และ y ของจุดกำเนิดได้ วิธีที่สองคือการใช้แอตทริบิวต์ viewBox ซึ่งจะช่วยให้คุณสามารถควบคุมตำแหน่งและขนาดของกราฟิกได้ วิธีที่สามคือการใช้แอตทริบิวต์ ซึ่งจะช่วยให้คุณควบคุมวิธีการปรับขนาดกราฟิกได้
เราจะแสดงวิธีไขปริศนาการเขียนโปรแกรม CSS Flip Svg ในโพสต์นี้ เป็นผลให้ปัญหาได้รับการแก้ไขโดยใช้ตัวอย่างที่หลากหลาย หากคุณต้องการสะท้อน SVG คุณสามารถอัปโหลดไปที่ตัวแก้ไขหรือลากและวาง เมื่อเปิดใช้งานไฟล์ SVG แล้ว คุณสามารถพลิกไฟล์ในแนวนอนหรือแนวตั้งเพื่อมิเรอร์ได้ ฟังก์ชันการแปลงแบบหมุน (x, y) ใช้เพื่อระบุการหมุนตามองศา ค่าเริ่มต้นสำหรับแหล่งกำเนิดการแปลงคือ 50% 50% 0 ในกรณีนี้ การหมุนจะอยู่ตรงกลาง สามารถแก้ไข SVG ได้โดยไม่ต้องผ่านขั้นตอนเดียวกับโปรแกรม ViewBox เป็นตำแหน่ง วิวพอร์ต SVG และแอตทริบิวต์มิติที่กำหนดขนาดในพื้นที่ผู้ใช้
CSS สำหรับการปรับขนาดแนวตั้ง: -webkit-transform: scaleX(-1); แปลงร่าง: scaleX(-1); 15 กันยายน 2563
คุณจะต้องเปิดตัวแก้ไข HTML ของคุณ ในการพลิกภาพ คุณต้องกำหนดบรรทัดของโค้ดที่ต้องปฏิบัติตามก่อน โปรดใส่แอตทริบิวต์ style ต่อไปนี้ในโค้ดรูปภาพของคุณ: style="filter:FlipH": ตอนนี้แท็กรูปภาพของคุณควรมีลักษณะดังนี้: บันทึกเอกสาร
ฉันจะพลิกไฟล์ Svg ได้อย่างไร

หากต้องการพลิกไฟล์ SVG คุณจะต้องใช้โปรแกรมที่สามารถเปิดและแก้ไข ไฟล์ SVG ได้ มีโปรแกรมที่แตกต่างกันสองสามโปรแกรมที่สามารถทำได้ แต่เราขอแนะนำ Inkscape เนื่องจากเป็นโปรแกรมฟรีและเป็นโอเพ่นซอร์ส เมื่อคุณติดตั้ง Inkscape แล้ว ให้เปิดไฟล์ SVG ของคุณในโปรแกรม จากนั้นคลิกที่เมนู "แก้ไข" และเลือก "พลิกแนวนอน" หรือ "พลิกแนวตั้ง" จากเมนู การดำเนินการนี้จะพลิกไฟล์ SVG ของคุณ
สามารถใช้ แอตทริบิวต์การแปลง SVG เพื่อปรับแต่งรูปลักษณ์ของรูปภาพโดยไม่กระทบต่อคุณภาพของภาพ คุณสามารถปรับขนาดรูปภาพโดยไม่สูญเสียคุณภาพของรูปภาพ เปลี่ยนสีเติม เพิ่มหรือเปลี่ยนเค้าร่าง และทำสิ่งอื่นๆ ได้
ฉันจะเปลี่ยนจุดเริ่มต้นเป็น Svg ได้อย่างไร

ไม่มีคำตอบเดียวสำหรับคำถามนี้ เนื่องจากวิธีที่ดีที่สุดในการเปลี่ยนที่มาของไฟล์ SVG อาจแตกต่างกันไปขึ้นอยู่กับไฟล์เฉพาะและผลลัพธ์ที่ต้องการ อย่างไรก็ตาม เคล็ดลับบางประการเกี่ยวกับวิธีเปลี่ยนที่มาของไฟล์ SVG อาจรวมถึงการใช้โปรแกรมซอฟต์แวร์ที่รองรับการแก้ไขเวกเตอร์ เช่น Adobe Illustrator, Inkscape หรือ CorelDRAW หรือถ้าไฟล์เป็น ไฟล์ SVG มาตรฐาน ให้แก้ไขโค้ดโดยตรงเพื่อเปลี่ยนค่าของแอตทริบิวต์ 'viewBox'
การตั้งค่าจุดกำเนิดการแปลงขององค์ประกอบ Svg
เป็นไปได้ที่จะเปลี่ยนที่มาของไอเท็มโดยกำหนดแอตทริบิวต์ของจุดเริ่มต้นการแปลงให้กับไอเท็มนั้น แอตทริบิวต์นี้สามารถใช้เพื่อระบุ องค์ประกอบ SVG ใดก็ได้ จุดเริ่มต้นของการแปลงสามารถพบได้ที่ศูนย์กลางขององค์ประกอบ
ตัวอย่างที่มาของการแปลง Svg
คุณสมบัติต้นกำเนิดการแปลงใช้เพื่อเปลี่ยนตำแหน่งขององค์ประกอบ องค์ประกอบจะถูกแปลงตามค่าที่กำหนดสำหรับคุณสมบัติ ตัวอย่างเช่น ถ้าค่าคือ “50% 50%” องค์ประกอบจะแปลงตรงกลางหน้า
องค์ประกอบ HTML และ SVG สามารถเปลี่ยนแปลงได้โดยใช้ฟังก์ชันการแปลงอย่างง่ายดาย อย่างไรก็ตาม สิ่งเดียวกันส่วนใหญ่ใช้งานไม่ได้เหมือนในองค์ประกอบ HTML พูดอีกอย่างคือ เราไม่สามารถใช้ค่า % สำหรับการแปลฟังก์ชัน (แม้ว่าค่า % จะใช้ไม่ได้กับการแปลง CSS เช่นกัน) และค่ามุมที่หมุนหรือเอียงทั้งหมดคือองศา ใน HTML ระบบพิกัดถูกกำหนดที่จุด 50% 50% ขององค์ประกอบ สำหรับ SVG จะอยู่ที่ 0 0point ของผืนผ้าใบ หลังจากการแปลงแบบหมุน ปรับขนาด หรือเอียง ผลลัพธ์ที่แตกต่างกันจะเกิดขึ้น การแปลเปลี่ยนองค์ประกอบของเราให้เทียบเท่า
มีสามฟังก์ชันการแปลสำหรับองค์ประกอบ HTML และ SVG ที่สามารถใช้ใน 2D: translateX(tx), translateY(ty) และ translate(tx[, ty) แต่ละองค์ประกอบในสององค์ประกอบแรกใช้เฉพาะทิศทาง x และ y เป็นพิกัดระบบ ฟังก์ชันการแปลที่สามจะย้ายองค์ประกอบ tx ไปตามแกน x และ y ตามลำดับ เมื่อองค์ประกอบต่างๆ ถูกหมุน องค์ประกอบเหล่านั้นจะเคลื่อนไปตามพิกัดจุดกำเนิดที่คงที่ มุมจะแสดงเป็นองศา (องศา) เรเดียน ( เรเดียน) รอบ (เลี้ยว) และเกรเดียน (บัณฑิต) นอกจากนี้ยังมีเมธอดที่ใช้ได้ (เช่น calc(25turn – 30deg) ซึ่งใช้ได้ใน Chrome 38 ขึ้นไป แต่จะใช้ได้เฉพาะใน Chrome 25+ เท่านั้น calc() จะเปิดใช้งานใน Firefox 59+ เป็นค่ามุม สำหรับฟังก์ชั่น Rotate()

CSS ของเรายังสามารถระบุค่าต้นกำเนิดของการแปลงเพื่อจำลองพารามิเตอร์ x และ y เมื่อใช้แอตทริบิวต์การแปลง SVG องค์ประกอบและระบบพิกัดจะหมุนรอบจุดที่ระบุโดยอาร์กิวเมนต์ที่สองและสามของฟังก์ชัน Rotate() ในการย้อนกลับการหมุน เราต้องใช้การหมุน (-45 140 105) แทนการหมุน (-45) เมื่อเราหมุนองค์ประกอบ 90 รอบมุมขวาล่าง และหมุนอีกครั้ง 90 รอบมุมขวาบน เราจะระบุจุดคงที่สำหรับการหมุนแต่ละครั้ง ฉันจะรับเอฟเฟกต์เดียวกันกับการแปลง CSS ได้อย่างไร ในการหมุนครั้งแรก เราสามารถตั้งค่าต้นกำเนิดการแปลงไปที่ด้านล่างขวา อย่างไรก็ตาม หากเราต้องการตั้งค่าจุดกำเนิดของการเปลี่ยนแปลงในการหมุนรอบที่สอง เราจะต้องตั้งค่าจุดกำเนิดของการเปลี่ยนแปลงไว้ที่ด้านล่างขวา เราจะหมุนองค์ประกอบอีก 90 เท่านั้นถ้าเราโยงมันหลังจากครั้งแรก
หากพิกัดอยู่ที่จุดกำเนิดของการแปลงมาตราส่วน ระบบจะตัดสินตามตำแหน่งที่ตั้ง สัญญาขององค์ประกอบเกิดขึ้นเมื่อปัจจัยการปรับมาตราส่วนอยู่ในช่วง (-1, 1) แต่จะขยายขึ้นเมื่อปัจจัยการปรับมาตราส่วนอยู่นอกช่วงนี้ ปัจจัยมาตราส่วนทิศทางคือปัจจัยที่ไม่แตกต่างจากปัจจัยมาตราส่วนซึ่งแตกต่างจากปัจจัยมาตราส่วนซึ่งแตกต่างจากปัจจัยมาตราส่วนซึ่งแตกต่างจากปัจจัยมาตราส่วนซึ่งแตกต่างจากปัจจัยมาตราส่วนซึ่งแตกต่างจากปัจจัยมาตราส่วนที่ แตกต่างจากปัจจัยการปรับสเกล นั่นคือ เราสามารถใช้การแปลงแบบผูกมัดหรือตั้งค่าจุดกำเนิดการแปลงที่เหมาะสมเพื่อให้บรรลุเป้าหมายนี้ การพอเพียงจะบิดเบือนองค์ประกอบโดยการแปลงสี่เหลี่ยมเป็นวงกลมและวงกลมเป็นสี่เหลี่ยมด้านขนาน ตรงข้ามกับการแปลหรือการหมุนซึ่งจะแปลงสี่เหลี่ยมเป็นวงกลมหรือวงกลม มุมเอียงคือมุมระหว่างตำแหน่งสุดท้ายและตำแหน่งเริ่มต้นของแกนที่เปลี่ยนแปลงตามผลลัพธ์ของการแปลง เมื่อมุมเอียงเป็นบวกของ [0, 90] เกิดขึ้นในช่วงเวลา[0, 90] ค่าของเครื่องหมายเดียวกันกับที่อยู่ในพิกัดเดิมจะปรากฏขึ้น เมื่อเราเอียงไปตามแกน x พิกัด x จะคงที่ทุกจุดในองค์ประกอบของเรา อย่างไรก็ตาม ขึ้นอยู่กับวิธีการคำนวณมุมเอียง พิกัด y จะเปลี่ยนไป
ตำแหน่งของระบบพิกัดขององค์ประกอบเมื่อมีการดำเนินการเอียงมีความสำคัญพอๆ กับจุดกำเนิด หากใช้การแปลงมุมเอียงสองครั้งในมุมเดียวกันตามแกนเดียวกันพร้อมกัน ผลลัพธ์จะแตกต่างกันสำหรับแต่ละรายการ หากต้องการดูว่ากรณี HTML อยู่ในรูปด้านล่าง ขวาหรือซ้าย ให้คลิกที่กรณีนั้น ในทั้งสองกรณี มุมของเราคือ 60 องศา แต่พิกัด y ของมุมบนขวาคือสิ่งที่สร้างความแตกต่าง ค่าหน่วยใช้ในการคำนวณมุมสำหรับคุณสมบัติการแปลง CSS องศา (ตั้งแต่ 0 ถึง ), เรเดียน (ตั้งแต่ 0 ถึงเรเดียน), รอบ (ตั้งแต่ 0 ถึงรอบ) หรือเกรเดียน (ตั้งแต่ 0 ถึงเกรเดียน) สามารถใช้ได้ทั้งหมด ขึ้นอยู่กับการรวมกันของค่าเหล่านี้ เราสามารถใช้การแปลงเช่นองค์ประกอบ HTML ซึ่งเราสามารถหมุน ปรับขนาด และเอียงองค์ประกอบ
ตัวอย่างเช่น หากเราใช้การแปลงแบบลูกโซ่เพื่อให้ค่าแอตทริบิวต์ SVG ผลลัพธ์ที่เราต้องการใน IE อาจได้รับ อย่างไรก็ตาม ความน่าเกลียดของมันแย่มาก วิธีที่ง่ายที่สุดในการทำเช่นนี้คืออะไร? รูปร่างคล้ายรูปหลายเหลี่ยมสามรูปที่แสดงในโค้ดด้านล่างเรียกว่ารูปดาว การสาธิตด้านล่างแสดงการวางตำแหน่งเทียบกับจุดกำเนิดของผืนผ้าใบ (0 0) หากมีคู่ X, Y ในรหัส คุณสามารถตรวจสอบว่าคู่ใดตรงกับจุดใดในรหัส เราต้องการ การหมุนที่แตกต่างกัน สำหรับดาวแต่ละดวง ดังนั้นสมมติว่ามีมุมสุ่มและมุมเฉพาะตามดัชนีของมัน
แหล่งกำเนิด Svg อยู่ที่ไหน
ระบบพิกัดนี้มาจากจุด 50% 50% ขององค์ประกอบใน HTML ที่มาขององค์ประกอบในไฟล์เวกเตอร์ถูกกำหนดโดยตำแหน่งขององค์ประกอบภายใน svg> องค์ประกอบที่ 0 0 สมมติว่าไม่มีการใช้การแปลงกับองค์ประกอบเองหรือบรรพบุรุษใดๆ
การแปลงใน Svg คืออะไร?
การแปลงแอตทริบิวต์นี้กำหนดชุดของคำนิยามการแปลงที่ใช้กับองค์ประกอบและรายการย่อย เพื่อหลีกเลี่ยงความสับสน การแปลงเป็นแอตทริบิวต์การนำเสนอ ซึ่งหมายความว่าสามารถใช้เป็นคุณสมบัติ CSS ได้
Svg ต้นทางซ้ายบน
องค์ประกอบทั้งหมดใน SVG ทำงาน ในลักษณะเดียวกับที่ผืนผ้าใบทำ: ใช้ระบบพิกัดหรือระบบกริด (และรูทีนการวาดด้วยคอมพิวเตอร์อื่นๆ อีกมากมาย) จุด (0,0) คือตำแหน่งที่จุดเริ่มต้นของเอกสารเริ่มต้นขึ้น
วิธีสะท้อน Svg
ในวิวพอร์ตรูปภาพ มีพื้นที่สี่เหลี่ยมในพื้นที่ผู้ใช้ที่กำหนดขนาดและตำแหน่งของรูปภาพ แอตทริบิวต์ viewBox กำหนดตำแหน่งและขนาดในพื้นที่ผู้ใช้ของวิวพอร์ต SVG คุณต้องเพิ่มแอตทริบิวต์ viewBox ให้กับเพจโดยป้อนตัวเลขสี่ตัว: min-x, min-y, width และ height ในการทำมิเรอร์ SVG ก่อนอื่นคุณต้องอัปโหลดหรือลากและวางลงในเครื่องมือแก้ไข ในแถบเครื่องมือด้านบนของเอดิเตอร์ ให้คลิก เครื่องมือพลิก เมื่อคุณพร้อมที่จะสะท้อนไฟล์ SVG ให้พลิกในแนวตั้งหรือแนวนอน หลังจากดาวน์โหลดเวกเตอร์เสร็จแล้ว คุณสามารถบันทึกในรูปแบบไฟล์ต่างๆ ได้
หมุน Svg ด้วย Javascript
หากต้องการหมุนรูปภาพ SVG คุณสามารถใช้ฟังก์ชันหมุน () เปลี่ยนรูปได้ คุณสามารถระบุมุมของการหมุนด้วย แอตทริบิวต์ของการหมุน ตัวอย่างเช่น หากต้องการหมุนรูปภาพ 90 องศา คุณจะต้องใช้รหัสต่อไปนี้: