Vector Object Scaling via Grid Segmentation and Code Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphical application development environments face challenges in automating the scaling of arbitrarily complex graphical objects, as conventional methods like nine slicing require extensive programming and can result in undesirable graphical effects such as 'jagged' appearances when using bitmap magnification.

Innovation Solution

A grid of four guide lines is superimposed on a graphical object, allowing users to control transformations, and overlapping vectors are divided into separate section vectors, with transformation code generated to ensure the object's outline is maintained during scaling, resulting in a sharper transformed representation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If nine slice scaling is implemented manually with programming, then scaling transformation can be achieved, but the process requires extensive programming time and expert skills

Engineering Contradiction:
Improveautomated scaling transformationVSAvoidprogramming time
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

The system automatically generates scaling transformation code by analyzing the graphical object's vectors and grid sections, eliminating the need for manual programming. The code generation module self-services by creating the necessary transformation matrices and scaling logic based on the object's geometric properties and the desired scaling parameters.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical programming processes with an automated computational system. Instead of requiring developers to manually write transformation code, the system uses algorithms to automatically calculate and generate the scaling transformation matrices, substituting human effort with automated mathematical computation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Extent of automation

If bitmap magnification is used for scaling, then automation is easier to implement, but the graphical quality degrades with jagged appearances

Engineering Contradiction:
Improveautomated magnificationVSAvoidgraphical quality
Core Design Contradiction:
Extent of automationVSManufacturing precision

Solution Approach 1:

The patent segments the graphical object into nine distinct sections based on a grid overlay, allowing each section to be scaled independently using vector mathematics. This segmentation enables precise control over the scaling of different parts of the object, maintaining sharp edges and smooth curves while achieving automated scaling transformation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the representation parameter from bitmap pixels to vector coordinates, allowing scaling to be performed through mathematical transformation of control points and bezier curves. This parameter change from raster to vector domain enables automated scaling without quality degradation, as vectors can be scaled infinitely without loss of precision.

Inventive Principle:
Principle #35Parameter changes

3Manufacturing precision

If vector graphics are used for scaling, then graphical quality is maintained, but the computational complexity increases due to arbitrary object shapes

Engineering Contradiction:
Improvegraphical qualityVSAvoidcomputational complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent divides complex vector objects into nine manageable sections using a grid system, where each section contains a subset of the original vectors. This segmentation reduces the computational complexity by allowing scaling transformations to be applied to smaller, more manageable vector groups rather than the entire complex object at once.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies different scaling transformations to different sections of the object based on their local requirements. Each of the nine sections can have its own transformation matrix, allowing the scaling operation to adapt to the local geometric properties of each region while maintaining overall object integrity and visual quality.

Inventive Principle:
Principle #3Local quality

4Adaptability or versatility

If nine slice grid lines are made non-symmetrical to fit arbitrary objects, then versatility is improved, but automation becomes highly complex

Engineering Contradiction:
Improvegrid adaptabilityVSAvoidautomation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a dynamic grid system where the nine slice lines can be positioned asymmetrically to accommodate arbitrary object shapes and aspect ratios. The grid configuration adapts dynamically based on the object's dimensions and the desired scaling behavior, allowing the same automated algorithm to handle both symmetric and asymmetric cases without increasing complexity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8884990B2Scaling vector objects having arbitrarily complex shapes
Publication Date: 2014.11.11 ADOBE INC
  • US8884990B2 patent drawing
  • US8884990B2 patent drawing
  • US8884990B2 patent drawing

AI summary

Scaling arbitrarily complex graphical objects is described by superimposing a grid of four guide lines on a graphical object defined by one or more vectors. The guide lines define nine grid sections. The graphical application development environment (GADE) divides any vectors crossing multiple grid sections into separate section vectors, such that each section contains whole vectors. The application and resulting vector information in each grid section is compiled into an executable file. When executed in a compatible run-time container, the container virtually renders a transformed representation of the graphical object in memory. Using information gathered from analyzing the outline of the transformed representation, the run-time container generates code blocks for transforming each of the vectors within the grid sections an appropriate amount that conforms to the outline information. The resulting transformed vectors are displayed in the running application.