Home Technology peripherals It Industry How to Draw Quadratic Bézier Curves on HTML5 SVGs

How to Draw Quadratic Bézier Curves on HTML5 SVGs

Feb 10, 2025 pm 02:07 PM

SVG quadratic Bezier curve: a tool to draw smooth edges

This article will explore how to draw smooth edges using quadratic Bezier curves in HTML5 SVG. The quadratic Bezier curve is defined by the d instruction in the SVG path Q attribute, with a start and end point, and the curve is bent through a single control point.

Key points:

    The
  • instruction in the d SVG path Q attribute is used to define a quadratic Bezier curve, which contains three coordinates: the start point, the control point and the end point.
  • Use the lowercase letters q to specify relative coordinates, while the T and t instructions can be used to connect multiple curves. The system will automatically infer control points based on the previous curve to ensure smooth transitions of the curve.
  • While encoding and visualizing quadratic Bezier curves can be challenging, the <path></path> code can be generated using the tool.
  • Quadriferous Bezier curves can be used to create complex shapes and can be animated via <animate></animate> elements, CSS animations, or JavaScript.

Previous article "How to Create Complex Paths in SVG" explores the <path></path> elements and shows how to draw a series of line segments and arcs to create any shape (often used to copy fonts without downloading the full font). ). The d property provides some extra tricks to draw smooth curves. This article will discuss quadratic Bezier curves, and you can also refer to "How to draw cubic Bezier curves on SVG images" for more complex options.

What is a quadratic Bezier curve?

The quadratic Bezier curve has a starting point (P0) and an end point (P2). A single control point (P1) determines the curvature of the line. Wikipedia's Bezier Curve page provides a good generated illustration:

How to Draw Quadratic Bézier Curves on HTML5 SVGs

Pictures are from Wikipedia

Math enthusiasts can also view headache-inducing equations on Wolfram MathWorld.

Quadrilateral curves are great for drawing smooth edges. As can be seen from the figure below, it is easy to specify a control point, and usually right-angle edges appear:

How to Draw Quadratic Bézier Curves on HTML5 SVGs

Complex path

Quadratic Bezier curve uses the d instruction definition in the Q attribute of the SVG path:

<path d="M100,250 Q250,100 400,250" />
Copy after login
Copy after login
The

Initial M command moves the pen to the first point (100,250). Q is followed by two coordinates: a single control point (250,100) and the final drawn point (400,250).

You can also use the lowercase letter q to represent relative coordinates instead of absolute coordinates. The following curve will be the same and may be easier to encode:

<path d="M100,250 Q250,100 400,250" />
Copy after login
Copy after login

Finally, there are abbreviated T and t instructions (usually, lowercase letters represent relative coordinates rather than absolute coordinates). These instructions accept further end coordinates to connect multiple curves together. The control points are inferred from the last used point to ensure a perfect smooth continuous curve. For example, consider the following path:

<path d="M100,250 q150,-150 300,0" />
Copy after login

It draws a curve from 100,250 to 400,250 with the control point at 250,100. Another curve is then drawn, ending at 700,250, and the control point is inferred to 550,400.

How to Draw Quadratic Bézier Curves on HTML5 SVGs

The inferred control points are mathematically correct, but may not always be what you need!

Quadratic Bezier curves can be a bit difficult to encode and visualize, so you can use the Quick Generation Tool to generate <path></path> code for you:

CodePen link

Drag the control points at both ends of the curve. Click the curve itself to toggle the fill effect, which adds the end Z command.

Please note that this tool must convert DOM page coordinates to SVG coordinates to ensure it works properly for all screen sizes. This may be a little more complicated than you expected, so refer to "How to convert from DOM coordinates to SVG coordinates and return" for full details.

If you are ready to deal with more complex issues, try creating a cubic Bezier curve on an SVG image.

(The FAQ part mentioned in the original text should be added here, the content has been given in the original text and will not be repeated here)

The above is the detailed content of How to Draw Quadratic Bézier Curves on HTML5 SVGs. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Building a Network Vulnerability Scanner with Go Building a Network Vulnerability Scanner with Go Apr 01, 2025 am 08:27 AM

This Go-based network vulnerability scanner efficiently identifies potential security weaknesses. It leverages Go's concurrency features for speed and includes service detection and vulnerability matching. Let's explore its capabilities and ethical

CNCF Arm64 Pilot: Impact and Insights CNCF Arm64 Pilot: Impact and Insights Apr 15, 2025 am 08:27 AM

This pilot program, a collaboration between the CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal, and Actuated, streamlines arm64 CI/CD for CNCF GitHub projects. The initiative addresses security concerns and performance lim

Serverless Image Processing Pipeline with AWS ECS and Lambda Serverless Image Processing Pipeline with AWS ECS and Lambda Apr 18, 2025 am 08:28 AM

This tutorial guides you through building a serverless image processing pipeline using AWS services. We'll create a Next.js frontend deployed on an ECS Fargate cluster, interacting with an API Gateway, Lambda functions, S3 buckets, and DynamoDB. Th

Top 21 Developer Newsletters to Subscribe To in 2025 Top 21 Developer Newsletters to Subscribe To in 2025 Apr 24, 2025 am 08:28 AM

Stay informed about the latest tech trends with these top developer newsletters! This curated list offers something for everyone, from AI enthusiasts to seasoned backend and frontend developers. Choose your favorites and save time searching for rel

See all articles