วิธีการวาดองค์ประกอบ Svg ใน C
เผยแพร่แล้ว: 2023-02-22เมื่อพูดถึงการสร้าง กราฟิกแบบเวกเตอร์ ที่ปรับขนาดได้ หรือ SVG มีหลายวิธีในการดำเนินการ คุณสามารถใช้โปรแกรมแก้ไขเวกเตอร์ เช่น Adobe Illustrator หรือ Inkscape หรือคุณสามารถเขียนโค้ดด้วยตนเองโดยใช้โปรแกรมแก้ไขข้อความ หากคุณเป็นคนชอบมองภาพมากกว่านั้น การใช้โปรแกรมแก้ไขเวกเตอร์น่าจะเป็นทางเลือกที่ดี แต่ถ้าคุณเป็นคนประเภทที่ชอบให้โค้ดเลอะเทอะ การเขียนโค้ด SVG ด้วยมือคือทางเลือกที่ดีที่สุด ไม่ว่าจะด้วยวิธีใด เมื่อคุณมีไฟล์ SVG แล้ว คุณจะต้องฝังลงในเอกสาร HTML ของคุณ ในการทำเช่นนี้ คุณจะต้องใช้องค์ประกอบ องค์ประกอบนี้ใช้เพื่อฝังกราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ลงในเอกสาร HTML สามารถใช้องค์ประกอบแบบอินไลน์ภายในเอกสารหรือเป็นไฟล์แบบสแตนด์อโลน เมื่อใช้แบบอินไลน์ โค้ด SVG จะถูกวางไว้ภายในแท็ก และเมื่อใช้เป็นไฟล์แบบสแตนด์อโลน แท็กจะถูกใช้เพื่ออ้างอิงไฟล์ เมื่อฝังไฟล์ SVG คุณสามารถตั้งค่าความกว้างและความสูงของไฟล์เป็นพิกเซล หรือคุณสามารถตั้งค่าความกว้างและความสูงเป็นค่าเปอร์เซ็นต์ คุณยังสามารถตั้งค่าแอตทริบิวต์ viewBox ซึ่งกำหนดพื้นที่ของภาพ SVG ที่มองเห็นได้ เมื่อคุณมีองค์ประกอบพื้นฐานแล้ว คุณสามารถเริ่มวาดรูปร่าง SVG ของคุณได้ สำหรับแต่ละรูปร่าง คุณจะต้องใช้องค์ประกอบ SVG ที่เหมาะสม ตัวอย่างเช่น ในการวาดสี่เหลี่ยมผืนผ้า คุณจะต้องใช้องค์ประกอบ องค์ประกอบมีสี่แอตทริบิวต์: x, y, ความกว้างและความสูง แอตทริบิวต์ x และ y กำหนดมุมบนซ้ายของสี่เหลี่ยมผืนผ้า และแอตทริบิวต์ความกว้างและความสูงกำหนดความกว้างและความสูงของสี่เหลี่ยมผืนผ้า ในการวาดวงกลม คุณจะต้องใช้องค์ประกอบ องค์ประกอบมีสามแอตทริบิวต์: cx, cy และ r แอตทริบิวต์ cx และ cy กำหนดศูนย์กลางของวงกลม และแอตทริบิวต์ r กำหนดรัศมีของวงกลม และในการวาดเส้นทาง คุณจะต้องใช้องค์ประกอบ องค์ประกอบใช้แอตทริบิวต์เดียว: d แอตทริบิวต์ d กำหนดเส้นทางข้อมูล เมื่อคุณมีรูปทรงพื้นฐานเรียบร้อยแล้ว คุณสามารถเริ่มเพิ่มสีได้ ถึง
ในโพสต์บล็อกนี้ ฉันจะสาธิตวิธีสร้างและบันทึกไฟล์ svga โดยใช้ไลบรารี C อย่างง่าย แทนที่จะใช้รูปแบบกราฟิกแบบเวกเตอร์ ภาพกราฟิกแบบเวกเตอร์แบบปรับขนาดได้ (SVG) จะประกอบด้วยองค์ประกอบแต่ละอย่าง เช่น รูปร่าง ด้วยเหตุนี้ จึงเหมาะสมกว่าสำหรับรูปภาพง่ายๆ เช่น กราฟ ไดอะแกรม หรือโลโก้ วิธีแรกคือการฝังในหน้า HTML ซึ่งองค์ประกอบเป็นส่วนหนึ่งของ DOM และสามารถจัดการได้โดย JavaScript (เช่น หากมีการแสดงภาพเคลื่อนไหวที่ต้องการ) หรือเครื่องมือค้นหา ตัวเลือกที่สองคือการวางซอร์สโค้ดในไลบรารีที่สามารถคอมไพล์และใช้ซ้ำในโครงการต่างๆ รวมถึงทดสอบการทำงานของซอร์สโค้ด คลิก svg.c แล้วพิมพ์หรือคัดลอก/วางโค้ดต่อไปนี้ลงในส่วน #includes จำนวนหน่วยความจำเพิ่มเติมที่จำเป็นในการแทรกตัวเลขหรือข้อความลงในเอกสารคำนวณโดยใช้ appendstringtosvg
สุดท้าย เราจะเรียก realloc ซึ่งจะทำให้หน่วยความจำใหญ่ขึ้นและเพิ่มข้อความใหม่ลงไป เริ่มต้นด้วยการเขียนฟังก์ชัน svg_rectangle ซึ่งเป็นการเพิ่มองค์ประกอบให้กับเอกสาร แท็กเปิดและปิดถูกสร้างขึ้นโดยการเรียกใช้การเรียก appendstringtosvg และ appendnumbertosvg เราจะเรียกใช้ฟังก์ชันนี้เมื่อเราเพิ่มองค์ประกอบและเอกสารเสร็จเรียบร้อยแล้ว รูปสี่เหลี่ยม.svg เป็นไฟล์ที่คุณสามารถเปิดในโฟลเดอร์ที่บันทึกไฟล์ของคุณ ในสี่เหลี่ยมจัตุรัส เราใช้สี่เหลี่ยมผืนผ้าสีน้ำเงินขนาด 0, 0 ก่อน พื้นหลังจะโปร่งใสหากไม่มีเงา
ฟังก์ชันต่อไปนี้ ซึ่งเราจะใช้ต่อจากนี้ไป จะมีประโยชน์หากเรามีวิธีการง่ายๆ ในการทำให้กระบวนการง่ายขึ้น ดังนั้นให้กลับไปที่ svg.c แล้วใช้อีกครั้ง การเพิ่ม ฟังก์ชัน SVG_print ลงในไฟล์เดียวกันยังมีประโยชน์สำหรับการทดสอบและแก้จุดบกพร่องข้อความของ SVG ไม่สามารถแทรกไฟล์ svg.c ได้ ต้นแบบสำหรับ iwanttobelieve ซึ่งเป็นฟังก์ชันที่มุมขวาบนของ main.c อาจปรากฏขึ้นก่อนหน้านี้ งานเสร็จสมบูรณ์แล้ว หากต้องการดูสี ให้ใช้รูปแบบเลขฐานสิบหก ชื่อ สี rgb หรือ rgba เนื่องจาก a หมายถึงอัลฟาซึ่งเป็นรูปแบบหนึ่งของความทึบแสง ผลที่ได้คือค่าเป็นศูนย์ หมายความว่าโปร่งใสอย่างสมบูรณ์
คุณจะเห็นว่าทำไมในอีกสักครู่ เมื่อคุณคอมไพล์และเรียกใช้ iwanttobelieve.svg คุณจะสามารถสร้างรูปภาพที่มีข้อความที่ฉันอยากจะเชื่อและชุดของเส้นและเส้นสีเงินและสีดำ ดาวจะถูกเลือกโดยการสุ่มจากกลุ่มดาวเพื่อแสดงถึงสีของท้องฟ้า
ด้วยแท็ก svg> คุณสามารถแทรกรูปภาพลงในเอกสาร HTML ได้โดยตรง หากคุณต้องการใช้ภาพ SVG ให้ไปที่โค้ด VS หรือ IDE ที่คุณต้องการ แล้วคัดลอกโค้ด จากนั้นวางลงในองค์ประกอบ body> ของเอกสาร HTML
เมื่อดู SVG เว็บเบราว์เซอร์ เช่น PNG, GIF และ JPG สามารถแสดงผลได้ คุณสามารถวาดรูปหลายเหลี่ยมโดยใช้ HTML SVG โดยใช้องค์ประกอบรูปหลายเหลี่ยม> รูปหลายเหลี่ยมเป็นองค์ประกอบที่สร้างกราฟิกที่มีขนาดอย่างน้อยสามด้าน ในกรณีนี้ มีแอตทริบิวต์ point x มีการกำหนดพิกัดสำหรับแต่ละมุมของรูปหลายเหลี่ยม
คุณสามารถสร้าง Svgs แบบร่างได้หรือไม่?
ได้ คุณสามารถสร้าง SVG ใน Sketch ได้ ด้วยความช่วยเหลือของเครื่องมือวาดภาพเวกเตอร์ของ Sketch ทำให้ง่ายต่อการสร้าง SVG ที่สะอาดและแม่นยำ ซึ่งสามารถใช้ได้บนเว็บไซต์และอุปกรณ์ที่หลากหลาย
รหัสสำหรับองค์ประกอบ svg แสดงอยู่ด้านล่าง ณ วันที่ 17 กุมภาพันธ์ 2014 ความกว้างของหน้านี้คือ 500 ควรตั้งค่าความกว้าง 100 นิ้วและความสูง 100 นิ้ว svg สามารถเข้าถึงได้โดยพิมพ์ลงในเครื่องมือค้นหาใดก็ได้ รหัส HTML สำหรับองค์ประกอบ svg อยู่ด้านล่าง XML xmlns=” http://www.w3.org/2000/svg DEFS ที่เกี่ยวข้อง = /br/ LinearGradient id=”การไล่ระดับสี”> คือชื่อขององค์ประกอบพีชคณิตเชิงเส้น *stop offset=0″ stop-color=#000[/i]=stop offset=0). หากต้องการชดเชยระยะเวลาหนึ่ง ให้กดปุ่ม "หยุดชดเชย" สีแดง LinearGradients ใช้ใน linearGradients */defs ความสูงและความกว้างถูกตั้งค่าเป็น 100 ฟุต **/svg คือชื่อของรูปภาพ องค์ประกอบ svg มีโค้ด html ที่สามารถดูได้ด้านล่าง ความกว้าง=500 และความสูง=500 หากต้องการแสดงความกว้างและความสูงของข้อความ ให้เลือกความกว้าง 100 และความสูง 100 svg เมื่อเราดูโค้ด HTML สำหรับองค์ประกอบ svg เราจะสังเกตเห็นสี่เหลี่ยมสองรูป สี่เหลี่ยมผืนผ้าแรกคือ 100 x 100 และมีความสูง 100 x 100 ความสูงและความกว้างของสี่เหลี่ยมผืนผ้าที่สองคือ 500 และ 500 ตามลำดับ มีการวางแนวระหว่างสี่เหลี่ยม
การออกแบบโดยไม่ใช้ Illustrator: ขอแนะนำ Inkscape
แท็ก svg> ใช้เพื่อฝังกราฟิกในหน้าเว็บที่สร้างขึ้นแบบไดนามิก ส่วนหัวของเอกสาร HTML มีแท็ก svg> เพื่อให้ถูกต้อง แท็ก svg> ต้องมีองค์ประกอบต่อไปนี้: ความกว้างของ กราฟิก SVG ถูกกำหนดโดยแอตทริบิวต์นี้ ความสูงของกราฟิก SVG แสดงโดยแอตทริบิวต์ของตัวแปรนี้ แอตทริบิวต์ viewBox ระบุระบบพิกัดสำหรับกราฟิก SVG คุณลักษณะต่อไปนี้สามารถพบได้ในแท็ก svg> เนมสเปซสำหรับองค์ประกอบ SVG ระบุโดยแอตทริบิวต์นี้ นอกจากนี้ยังสามารถรวมแท็กย่อยต่อไปนี้ในแท็ก *svg: *br * แท็กย่อยที่มองเห็นได้บนแท็ก *svg> สามารถแสดงได้เช่นกัน เนื้อหาของเรื่องนี้มีดังนี้: เป็นการสรุปรายละเอียดบางส่วน โปรดอ่านคำอธิบายอย่างสุดความสามารถของคุณ ต่อไปนี้เป็นตัวอย่างของแอตทริบิวต์ ต้องตามด้วยแท็ก title> และ desc> ใน VScript ชื่อของกราฟิกจะถูกระบุโดยแท็ก *title ต้องตั้งค่าแท็กคำอธิบายเป็น "desc" เพื่อให้อธิบายกราฟิก SVG ได้
C ในเส้นทาง Svg คืออะไร
C ใน เส้นทาง svg หมายถึงจุดควบคุม จุดควบคุมใช้เพื่อควบคุมรูปร่างของเส้นโค้ง
การสร้าง ไฟล์ SVG ที่มีประสิทธิภาพและเชื่อถือได้ ตั้งแต่ต้นนั้นไม่ง่ายเหมือนการส่งออก SVG จาก Sketch แต่ทำได้จริง ในบทความนี้ ฉันจะอธิบายวิธีที่ฉันตรวจสอบแต่ละคุณลักษณะเหล่านี้ และสิ่งที่ฉันแนะนำให้คุณทำกับคุณลักษณะเหล่านี้ ตัวแปรที่ส่งผลกระทบมากที่สุด มีดังนี้ คุณลักษณะการส่งออกคืออะไร? คุณกำลังส่งออก Artboard, เลเยอร์ หรือชิ้นส่วนหรือไม่? ระบบพิกัดของ SVG แต่ละระบบประกอบด้วยองค์ประกอบต่างๆ ซึ่งจัดเรียงเป็นตาราง viewBox เป็นลักษณะหนึ่งของ SVG ที่คล้ายกับบอร์ด ViewBox กำหนดว่าส่วนใดของตารางของ SVG จะปรากฏในกราฟิกขั้นสุดท้ายของคุณ
อาจจำเป็นต้องส่งออกหรือคัดลอกเนื้อหาในอีเมลของคุณ เมื่อคุณร่างเฉพาะเลเยอร์ใหม่ คุณสามารถสร้างภาพได้ ใส่ SVG ต้นฉบับ ลงในกราฟิกที่ถูกต้องซึ่งสามารถคัดลอกลงในส่วนเฉพาะของต้นฉบับได้ เมื่อสร้างกราฟิกใหม่ วิธีที่ดีที่สุดคือใช้เวิร์กโฟลว์ต่อเลเยอร์นี้เท่านั้น หากคุณต้องการหลีกเลี่ยงการแปลการแปลง จะเป็นการดีกว่าที่จะคัดลอกทั้ง Artboard แทนที่จะเป็นเลเยอร์ที่แปลงเป็นองค์ประกอบ ในกรณีนั้น การลบมันค่อนข้างง่าย มีความเป็นไปได้ที่การเพิ่มประสิทธิภาพ Round/Rewrite Paths ทำให้การแปลงเป็นจุดเวกเตอร์ขององค์ประกอบแบนราบ
แอตทริบิวต์ D ใน Svg
องค์ประกอบ Svg คืออะไร?
ประโยชน์ของการใช้ Svg
เพื่อให้เข้าใจบรรทัดต่อไปนี้ เราต้องดูเส้นทางต่อไปนี้
[เส้นทาง] เส้นทาง d=M 0 V 1 L 1 *เส้นทาง d=M 0 V 1 L 1 *เส้นทาง d=M 0 V 1 L 1 *เส้นทาง d=M 0 V 1 L 1 *เส้นทาง d=M 0 V 1 L 1 *เส้นทาง d= เส้นโค้งสามารถสร้างขึ้นโดยใช้เส้นทาง เช่นเดียวกับจุดไข่ปลา
เส้นทางคือ m=M 0,2 V 3,4 L 5
นอกจากนี้ยังสามารถสร้างส่วนโค้งได้ด้วยการเชื่อมต่อพาธทรีกับรูทของพาธ
**เส้นทาง d=”M 0,2 V 3,4 L 5″ หมายถึงเส้นทางคือ 3,4 L ไม่ใช่ 0,2 V สุดท้าย เส้นทางสามารถใช้เพื่อสร้างรูปทรงที่ซับซ้อนที่มีหลายเส้นทางนอกเหนือจาก เส้นทาง
เส้นทาง d=”M 0,2 V 3,4 L 5,6″/> c หมายถึงอะไรในเส้นทาง svg
สามารถสร้างเส้นโค้งได้ด้วยแอตทริบิวต์ c
รหัส Svg
SVG เป็นไฟล์กราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ ซึ่งหมายความว่าเป็นภาพที่สามารถปรับขนาดเป็นขนาดใดก็ได้โดยไม่สูญเสียคุณภาพ รหัสสำหรับไฟล์ SVG คือ XML ซึ่งหมายความว่าสามารถแก้ไขได้ในโปรแกรมแก้ไขข้อความใดๆ
HTML5 อนุญาตให้รวมรหัสของภาพ sva ลงในเอกสาร HTML หมายความว่าเราสามารถเข้าถึงส่วนต่างๆ ของรูปภาพผ่าน JavaScript หรือเลือกสไตล์จาก CSS ในบทช่วยสอนนี้ เราจะพูดถึงซอร์สโค้ดของ SVG บางส่วนเพื่อสาธิตวิธีการทำงานของฐานราก ในบทความนี้ เราจะกล่าวถึงวิธีการจัดระเบียบระบบพิกัด viewBox แสดงพิกัดของตำแหน่งที่รายการรูปภาพจะถูกวางในระบบพิกัด คุณภาพการนำเสนอนอกเหนือไปจากรูปร่างมีอยู่ในตัวเรา เราไม่ใช้สีพื้นหลังเป็นสีสำหรับรูปร่างใน HTML แต่ใช้แอตทริบิวต์เติม
เรารู้อยู่แล้วเกี่ยวกับคุณสมบัติการเติมและจังหวะ แต่เราไม่รู้เกี่ยวกับเส้นขีดเส้นขีด ด้วยการดำเนินการนี้ ขีด จำกัด บรรทัดของเราสามารถขยายได้ เรายังใช้เส้นขีดและความกว้างเส้นขีดเพื่อกำหนดเส้นขอบสำหรับรูปร่าง แอตทริบิวต์ของรูปร่างที่กำหนดตำแหน่งขององค์ประกอบจะต้องยังคงอยู่ใน HTML แอตทริบิวต์สี เส้นขีด และแบบอักษรสามารถย้ายไปยัง CSS ได้ในบางกรณี เราต้องทำซ้ำรหัสเดิมห้าครั้งสำหรับแต่ละปีกเพื่อจัดกลุ่มองค์ประกอบ นอกจากนี้ เราสามารถสร้างคำจำกัดความสำหรับรูปร่างแล้วนำกลับมาใช้ใหม่โดยใช้ id เมื่อหมุนสาขา
ตัวอย่างเช่น ที่นี่ เรากำหนดสาขาของเกล็ดหิมะ จากนั้นเราหมุนมันหกครั้ง เมื่อเราเริ่มใช้เส้นโค้ง องค์ประกอบเส้นทางจะมีประสิทธิภาพมากยิ่งขึ้น เส้นโค้งเบซิเยร์กำลังสอง (Q) มีประโยชน์เมื่อเราต้องการโค้งงอเส้น แต่มักจะไม่ยืดหยุ่นเพียงพอ ไม่มีจุดควบคุมเพียงจุดเดียวสำหรับเบซิเยร์ลูกบาศก์ (C) และอีกสองจุดสำหรับจุดควบคุมอื่นๆ ในบทความต่อไปนี้ เราจะพูดถึงวิธีการโต้ตอบกับ SVG โดยใช้ JavaScript
องค์ประกอบ svg> ใช้เพื่อเริ่มภาพในรูปแบบ VNG ในการทำให้รูปภาพ SVG ใหญ่ขึ้น จะมีการกำหนดความกว้างและความสูงขององค์ประกอบ *svg%27 องค์ประกอบ *circle ใช้เพื่อสร้างวงกลม พิกัดของจุดศูนย์กลางของวงกลมเรียกว่าพิกัด x และ y ถูกกำหนดโดยแอตทริบิวต์ cx และ cy จะต้องอยู่ในองค์ประกอบ "เส้นทาง" เพื่อวาดเส้นทาง สีของเส้นทางถูกกำหนดโดยแอตทริบิวต์เติม ในตัวอย่างนี้ แอตทริบิวต์ stroke บอกเราว่าเส้นขอบรอบวงกลมมีสีอะไร
รูปภาพ Svg
ภาพ SVG เป็นไฟล์ภาพประเภทหนึ่งที่ใช้รูปแบบกราฟิกแบบเวกเตอร์เพื่อสร้างภาพ กราฟิกแบบเวกเตอร์เป็นวิธีการสร้างภาพโดยใช้สมการทางคณิตศาสตร์แทนการใช้พิกเซล ดังนั้น จึงสามารถปรับขนาดให้มีขนาดเท่าใดก็ได้โดยไม่สูญเสียคุณภาพ สิ่งนี้ทำให้ ภาพ SVG เหมาะ สำหรับใช้บนเว็บไซต์ เนื่องจากสามารถปรับขนาดให้พอดีกับขนาดหน้าจอใดก็ได้
ไฟล์ Scalable Vector Graphics (SVG) เป็นไฟล์ที่ดาวน์โหลดได้ง่ายและราคาถูก Extensible Markup Language (XML) เป็นรูปแบบรูปภาพประเภทหนึ่งที่ช่วยให้คุณสามารถแก้ไขกราฟิกแบบเวกเตอร์ได้ ภาพ SVG สามารถใช้ได้หลายวิธีใน CSS และ HTML บทช่วยสอนนี้จะนำคุณไปสู่หกวิธีการดำเนินธุรกิจที่แตกต่างกัน สำหรับวิดีโอนี้ ฉันจะแสดงวิธีใช้ SVG เป็นภาพพื้นหลัง CSS แท็ก >img ซึ่งคล้ายกับการเพิ่มรูปภาพลงในเอกสาร HTML ใช้เพื่อทำเช่นนั้น ครั้งนี้เราใช้ CSS แทน HTML ซึ่งช่วยให้เราปรับแต่งรูปลักษณ์ได้มากขึ้น
นอกจากนี้ยังสามารถใช้ HTML เพื่อเพิ่มรูปภาพไปยังหน้าเว็บในรูปแบบของ องค์ประกอบ VNG เบราว์เซอร์ทั้งหมดที่รองรับ Scalable Vector Graphics (SVG) จะรองรับ <object.> โดยอัตโนมัติ องค์ประกอบ HTML HTML และ CSS รวมถึงองค์ประกอบ HTML ซึ่งสามารถใช้กับไวยากรณ์ HTML นี้: / เบราว์เซอร์สมัยใหม่ส่วนใหญ่ไม่รองรับ HTML อีกต่อไป ดังนั้นจึงไม่มีเหตุผลที่จะใช้มันเพื่อติดตั้งปลั๊กอินของเบราว์เซอร์
ก่อนที่คุณจะเริ่มใช้ ไฟล์ SVG ในหน้าเว็บของคุณ ตรวจสอบให้แน่ใจว่าได้กำหนดค่าอย่างถูกต้อง ก่อนอื่น ตรวจสอบให้แน่ใจว่าเว็บไซต์ของคุณสามารถรองรับการโหลดเพิ่มเติมที่เกิดจากรูปแบบไฟล์ซึ่งมีขนาดใหญ่มาก ประการที่สอง เนื่องจากไฟล์ SVG ต้องการเบราว์เซอร์สมัยใหม่ที่รองรับมาตรฐาน จึงควรดูไฟล์เหล่านี้ หากคุณยังไม่มี คุณควรติดตั้ง Chrome, Edge, Firefox, Safari หรือ Opera โปรดทราบว่าเบราว์เซอร์ทั้งหมดไม่รองรับไฟล์ SVG หากคุณใช้เบราว์เซอร์รุ่นเก่า คุณจะต้องหาวิธีแปลงไฟล์ก่อนที่จะสามารถดูได้ HTMLV เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสร้างกราฟิกที่สามารถใช้ในหน้าเว็บ ง่ายต่อการใช้ไฟล์ SVG เมื่อใช้เบราว์เซอร์หลัก คอยสังเกตขนาดของไฟล์ รวมถึงตรวจสอบว่าเว็บไซต์ของคุณสามารถรองรับโหลดเพิ่มเติมได้