Controlled non-proportional scaling display
AssigneeMicrosoft Corporation
InventorsPeter Wu, David Hendler Sloo
Life of this patent
Estimating the term…
Abstract
An adjustment is made to the size of an original graphic data object in a substantially rectangular original screen to obtain a target graphic data object on a substantially rectangular target screen having a different aspect ratio than that of the original screen. The size of the original graphic data object is proportionally increased to obtain the target graphic data object on the target screen. The size of the target graphic data object on the target screen is non-proportionally increased by the addition of a stretch distance thereto where a line projecting from a resizing point on and perpendicular to an edge of the original screen intersects the original graphic data object.
Claims45
A method comprising
- identifying an original graphic data object having a left vertical edge, a right vertical edge, a top horizontal edge, and a bottom horizontal edge, rendered in association with an original screen having a horizontal axis and a vertical axis, wherein the original screen has a resizing point on the horizontal axis such that a line extending through the resizing point and parallel to the vertical axis intersects the original graphic data object;
- identifying a target screen having a different aspect ratio than the original screen, wherein a target graphic data object corresponding to the original graphic data object is to be rendered in association with the target screen;
- determining a height, HOO, and a width, WOO, of the original graphic data object, wherein:
- HOO represents a distance between the top and bottom horizontal edges of the original graphic data object;
- and
- WOO represents a distance between the left and right vertical edges of the original graphic data object;
- determining a height, HOS, and a width, WOS, of the original screen;
- determining a height, HTS, and a width, WTS, of the target screen;
- determining a distance, DVO, between a particular one of the vertical edges of the original graphic data object and a vertical edge of the original screen, and a distance, DHO, between a particular one of the horizontal edges of the original graphic data object and a horizontal edge of the original screen;
- calculating a height ratio, RH such that:
- RH=(HTS/HOS);
- calculating a stretch distance, S, such that:
- S=WTS−(RH*WOS);
- calculating a height, HTO, and a width, WTO, of the target graphic data object, such that:
- HTO=HOO*RH;
- and
- WTO=(WOO*RH)+S;
- calculating a distance DVT between a vertical edge of the target graphic data object and a vertical edge of the target screen, wherein the vertical edge of the target graphic data object corresponds to the particular one of the vertical edges of the original graphic data object and the vertical edge of the target screen corresponds to the vertical edge of the original screen, such that:
- DVT=DVO*RH;
- calculating a distance DHT between a horizontal edge of the target graphic data object and a horizontal edge of the target screen, wherein the horizontal edge of the target graphic data object corresponds to the particular one of the horizontal edges of the original graphic data object and the horizontal edge of the target screen corresponds to the horizontal edge of the original screen, such that:
- DHT=DHO*RH;
- calculating display coordinates for the target graphic data object;
- and
- rendering the target graphic data object in association with the target screen at a location indicated by the display coordinates.
A method comprising:
- identifying a first original graphic data object having top, bottom, left, and right edges, rendered in association with a rectangular original screen having an x-axis, wherein the original screen has a resizing point on the x-axis such that a line extending through the resizing point and perpendicular to the x-axis intersects the first original graphic data object;
- identifying a target screen having a different aspect ratio than the original screen, wherein a first target graphic data object corresponding to the first original graphic data object is to be rendered in association with the target screen;
- determining a height, HOS, and a width, WOS, of the original screen;
- determining a height, HTS, and a width, WTS, of the target screen;
- calculating a height ratio, RH, such that:
- RH=HTS/HOS;
- calculating a stretch distance, S, such that:
- S=WTS−(RH*WOS);
- determining a height, HOO(1), and a width, WOO(1), of the first original graphic data object, wherein:
- HOO(1) represents a distance between the top and bottom edges of the first original graphic data object;
- and
- WOO(1) represents a distance between the left and right edges of the first original graphic data object;
- determining a distance, OTD(1), between the top edge of the first original graphic data object and a top edge of the original screen, and a distance, OLD(1), between the left edge of the first original graphic data object and a left edge of the original screen;
- calculating a height, HTO(1), and a width, WTO(1), of the first target graphic data object, such that:
- HTO(1)=RH*HOO(1);
- and
- WTO(1)=(RH*WOO(1))+S;
- calculating a distance, TTD(1) between a top edge of the first target graphic data object and a top edge of the target screen, and a distance, TLD(1) between a left edge of the first target graphic data object and a left edge of the target screen, such that:
- TTD(1)=OTD(1)*RH;
- and
- TLD(1)=OLD(1)*RH;
- identifying a second original graphic data object having top, bottom, left, and right edges, rendered in association with the original screen, wherein the right edge of the second original graphic data object is to the left of the line extending through the resizing point, and wherein a second target graphic data object corresponding to the second original graphic data object is to be rendered in association with the target screen;
- determining a height, HOO(2), and a width, WOO(2), of the second original graphic data object, wherein:
- HOO(2) represents a distance between the top and bottom edges of the second original graphic data object;
- and
- WOO(2) represents a distance between the left and right edges of the second original graphic data object;
- determining a distance, OTD(2), between the top edge of the second original graphic data object and the top edge of the original screen, and a distance, OLD(2), between the left edge of the second original graphic data object and the left edge of the original screen;
- calculating a height, HTO(2), and a width, WTO(2), of the second target graphic data object, such that:
- HTO(2)=RH*HOO(2);
- and
- WTO(2)=RH*WOO(2);
- calculating a distance, TTD(2), between a top edge of the second target graphic data object and the top edge of the target screen, and a distance, TLD(2), between a left edge of the second target graphic data object and the left edge of the target screen, such that:
- TTD(2)=OTD(2)*RH;
- and
- TLD(2)=OLD(2)*RH;
- and
- rendering the first and second target graphic data objects in association with the target screen according to the calculated HTO(1), WTO(1), TTD(1), TLD(1), HTO(2), WTO(2), TTD(2), and TLD(2).
A method comprising:
- identifying an original graphic data object having a left vertical edge, a right vertical edge, a top horizontal edge, and a bottom horizontal edge, rendered in association with an original screen having a horizontal axis and a vertical axis, wherein the original screen has a resizing point on the vertical axis such that a line extending through the resizing point and perpendicular to the vertical intersects the original graphic data object;
- identifying a target screen having a different aspect ratio than the original screen, wherein a target graphic data object corresponding to the original graphic data object is to be rendered in association with the target screen;
- determining a height, HOO, and a width, WOO, of the original graphic data object, wherein:
- HOO represents a distance between the top and bottom horizontal edges of the original graphic data object;
- and
- WOO represents a distance between the left and right vertical edges of the original graphic data object;
- determining a height, HOS, and a width, WOS, of the original screen;
- determining a height, HTS, and a width, WTS, of the target screen;
- determining a distance, DVO, between a particular one of the vertical edges of the original graphic data object and a vertical edge of the original screen, and a distance, DHO, between a particular one of the horizontal edges of the original graphic data object and a horizontal edge of the original screen;
- calculating a width ratio, RW such that:
- RW=(WTS/WOS);
- calculating a stretch distance, S, such that:
- S=HTS−(RW*HOS);
- calculating a height, HTO, and a width, WTO, of the target graphic data object, such that:
- WTO=WOO*RW;
- and
- HTO=(HOO*RW)+S;
- calculating a distance DVT between a vertical edge of the target graphic data object and a vertical edge of the target screen, wherein the vertical edge of the target graphic data object corresponds to the particular one of the vertical edges of the original graphic data object and the vertical edge of the target screen corresponds to the vertical edge of the original screen, such that:
- DVT=DVO*RW;
- calculating a distance DHT between a horizontal edge of the target graphic data object and a horizontal edge of the target screen, wherein the horizontal edge of the target graphic data object corresponds to the particular one of the horizontal edges of the original graphic data object and the horizontal edge of the target screen corresponds to the horizontal edge of the original screen, such that:
- DHT=DHO*RW;
- calculating display coordinates for the target graphic data object;
- and
- rendering the target graphic data object in association with the target screen at a location indicated by the display coordinates.
A method comprising:
- identifying a first original graphic data object having left, right, top, and bottom edges, rendered in association with a rectangular original screen having a y-axis, wherein the original screen has a resizing point on the y-axis such that a line extending through the resizing point and perpendicular to the y-axis intersects the first original graphic data object;
- identifying a target screen having a different aspect ratio than the original screen, wherein a first target graphic data object corresponding to the first original graphic data object is to be rendered in association with the target screen;
- determining a height, HOS, and a width, WOS, of the original screen;
- determining a height, HTS, and a width, WTS, of the target screen;
- calculating a width ratio, RW, such that:
- RW=WTS/WOS;
- calculating a stretch distance, S, such that:
- S=HTS−(RW*HOS);
- determining a height, HOO(1), and a width, WOO(1), of the first original graphic data object, wherein:
- HOO(1) represents a distance between the top and bottom edges of the first original graphic data object;
- and
- WOO(1) represents a distance between the left and right edges of the first original graphic data object;
- determining a distance, OTD(1) between the top edge of the first original graphic data object and a top edge of the original screen, and a distance, OLD(1) between the left edge of the first original graphic data object and a left edge of the original screen;
- calculating a height, HTO(1), and a width, WTO(1), of the first target graphic data object such that:
- HTO(1)=(RW*HOO(1))+S;
- and
- WTO(1)=RW*WOO(1);
- calculating a distance, TTD(1), between a top edge of the first target graphic data object and a top edge of the target screen and a distance, TLD(1), between a left edge of the first target graphic data object and a left edge of the target screen such that such that:
- TTD(1)=OTD(1)*RW;
- and
- TLD(1)=OLD(1)*RW;
- identifying a second original graphic data object having left, right, top, and bottom edges, rendered in association with the original screen, wherein the bottom edge of the second original graphic data object is above the line extending through the resizing point, and wherein a second target graphic data object corresponding to the second original graphic data object is to be rendered in association with the target screen;
- determining a height, HOO(2), and a width, WOO(2), of the second original graphic data objects, wherein:
- HOO(2) represents a distance between the top and bottom edges of the second original graphic data object;
- and
- WOO(2) represents a distance between the left and right edges of the second original graphic data object;
- determining a distance, OTD(2), between the top edge of the second original graphic data object and the top edge of the original screen and a distance, OLD(2), between the left edge of the second original graphic data object and the left edge of the original screen;
- calculating a height, HTO(2), and a width, WTO(2), of the second target graphic data object such that:
- HTO(2)=RW*HOO(2);
- and
- WTO(2)=RW*WOO(2);
- calculating a distance, TTD(2), between a top edge of the second target graphic data object and the top edge of the target screen and a distance, TLD(2), between a left edge of the second target graphic data object and the left edge of the target screen such that:
- TTD(2)=OTD(2)*RW;
- and
- TLD(2)=OLD(2)*RW;
- and
- rendering the first and second target graphic data objects in association with the target screen according to the calculated HTO(1), WTO(1), TTD(1), TLD(1), HTO(2), WTO(2), TTD(2), and TLD(2).
A computer readable media comprising computer-readable instructions which, when executed by a computing system, direct the computing system to transform an original screen to a target screen by:
- identifying the original screen and the target screen, wherein the original and target screens each have opposing top and bottom edges with a respective height there between and opposing left and right edges with a respective width there between;
- identifying an original graphic data object on the original screen, wherein the original graphic data object has opposing top and bottom edges with a respective height there between and opposing left and right edges with a respective width there between;
- identifying a height, HOS, and a width, WOS, of the original screen;
- identifying a height, HTS, and a width, WTS, the target screen;
- identifying a height, HOO, and a width, WOO, of the original graphic data object;
- identifying a distance, OOV, between a vertical edge of the original graphic data object and a vertical edge of the original screen, and a distance, OHD, between a horizontal edge of the original graphic data object and a horizontal edge of the original screen;
- defining a target graphic data object that corresponds to the original graphic data object, wherein the target graphic data object is to be rendered on the target screen;
- in an event that (WTS/WOS)>(HTS/HOS):
- identifying a resizing point along a horizontal axis of the original screen;
- determining that a line through the resizing point and perpendicular to the horizontal axis intersects the original graphic data object;
- calculating a height ratio, RH, such that;
- RH=HTS/HOS;
- calculating a stretch distance, S, such that:
- S=WTS−(WOS*RH);
- calculating a height, HTO, and a width, WTO, of the target graphic data object such that:
- HTO=HOO*RH;
- and
- WTO=(WOO*RH)+S;
- and
- calculating a distance, TVD, between a vertical edge of the target graphic data object and a vertical edge of the target screen, and a distance, THD, between a horizontal edge of the target graphic data object and a horizontal edge of the target screen, wherein the vertical and horizontal edges of the target graphic data object correspond, respectively, to the vertical and horizontal edges of the original graphic data object and wherein the vertical and horizontal edges of the target screen correspond, respectively, to the vertical and horizontal edges of the original screen, such that:
- TVD=OVD*RH;
- and
- THD=OHD*RH;
- in an event that (HTS/HOS)>(WTS/WOS):
- identifying a resizing point along a vertical axis of the original screen;
- determining that a line through the resizing point and perpendicular to the vertical axis intersects the original graphic data object;
- calculating a width ratio, RW, such that:
- RW=WTS/WOS;
- calculating a stretch distance, S, such that:
- S=HTS−(HOS*RW);
- calculating a height, HTO, and a width, WTO, of the target graphic data object such that:
- HTO=(HOO*RW)+S;
- and
- WTO=WOO*RW;
- calculating a distance, TVD, between a vertical edge of the target graphic data object and a vertical edge of the target screen, and a distance, THD, between a horizontal edge of the target graphic data object and a horizontal edge of the target screen, wherein the vertical and horizontal edges of the target graphic data object correspond, respectively, to the vertical and horizontal edges of the original graphic data object and wherein the vertical and horizontal edges of the target screen correspond, respectively, to the vertical and horizontal edges of the original screen, such that:
- TVD=OVD*RW;
- and
- THD=OHD*RW;
- and
- rendering the target data object in association with the target screen according to the calculated HTO, WTO, TVD, and THD.
A computer readable media comprising computer-readable instructions which, when executed by a computer, performs steps that include:
- determining that:
- an original screen is to be transformed into a target screen of a different aspect ratio, wherein the original and target screens each have opposing top and bottom edges with a respective height there between and opposing left and right edges with a respective width there between, and wherein HOS represents the height of the original screen, HTS represents the height of the target screen, WOS represents the width of the original screen, and WTS represents the width of the target screen;
- a resizing point is defined on the original screen, wherein the resizing point is represented by a coordinate pair (XR, YR) wherein XR represents a distance from the left edge of the original screen to the resizing point, and wherein YR represents a distance from the top edge of the original screen to the resizing point;
- and
- a resizing line perpendicular to one of the edges of the original screen intersects:
- the resizing point;
- and
- one or more original points on at least one edge of an original graphic data object having a plurality of original points, each of the plurality of original points having a respective distance from the opposing top and bottom edges of the original screen and from the opposing left and right edges of the original screen, wherein, a coordinate pair (XO, YO) is defined for each of the original points such that for each point, XO represents a distance from the left edge of the original screen to the point, and YO represents a distance from the top edge of the original screen to the point, and wherein, based on the intersection of the resizing line with the one or more original points, the original graphic data object is designated as being disproportionately resizable;
- in an event that (WTS/WOS)>(HTS/HOS) and the resizing point is along a horizontal axis of the original screen:
- calculating a stretch distance, S, such that:
- S=WTS−((HTS/HOS)*WOS);
- for each of the plurality of original points for which (XO<XR), calculating a target point represented by a coordinate pair (XT, YT) wherein XT represents a distance from the left edge of the target screen to the target point, and YT represents a distance from the top edge of the target screen to the target point, and wherein:
- XT=XO*(HTS/HOS);
- and
- YT=YO*(HTS/HOS);
- for each of the plurality of original points for which (XO>XR), calculating a target point represented by a coordinate pair (XT, YT), wherein XT represents a distance from the left edge of the target screen to the target point and YT represents a distance from the top edge of the target screen to the target point, and wherein:
- XT=(XO*(HTS/HOS))+S;
- and
- YT=YO*(HTS/HOS);
- and
- for each of the plurality of original points for which (XO>XR), calculating a target line segment between a first point (XT1, YT1) and a second point (XT2, YT2), wherein XT1 represents a distance from the left edge of the target screen to the first point, YT1 represents a distance from the top edge of the target screen to the first point, XT2 represents a distance from the left edge of the target screen to the second point, and YT2 represents a distance from the top edge of the target screen to the second point, and wherein:
- XT1=XO*(HTS/HOS);
- YT1=YO*(HTS/HOS);
- XT2=(XO*(HTS/HOS))+S;
- and
- YT2=YO*(HTS/HOS);
- in an event that (WTS/WOS)<(HTS/HOS) and the resizing point is along a vertical axis of the original screen:
- calculating a stretch distance, S, such that:
- S=HTS−((WTS/WOS)*HOS);
- for each of the plurality of original points for which (YO<YR), calculating a target point represented by a coordinate pair (XT, YT), wherein XT represents a distance from the left edge of the target screen to the target point and YT represents a distance from the top edge of the target screen to the target point, and wherein:
- XT=XO*(WTS/WOS);
- and
- YT=YO*(WTS/WOS);
- for each of the plurality of original points for which (YO>YR), calculating a target point represented by a coordinate pair (XT, YT), wherein XT represents a distance from the left edge of the target screen to the target point and YT represents a distance from the top edge of the target screen to the target point, and wherein:
- Xt=XO*(WTS/WOS);
- and
- YT=(YO*(WTS/WOS))+S;
- and
- for each of the plurality of original points for which (YO=YR), calculating a target line segment between a first point (XT1, YT1) and a second point (XT2, YT2), wherein XT1 represents a distance from the left edge of the target screen to the first point, YT1 represents a distance from the top edge of the target screen to the first point, XT2 represents a distance from the left edge of the target screen to the second point, and YT2 represents a distance from the top edge of the target screen to the second point, and wherein:
- XT1=XO*(WTS/WOS);
- YT1=YO*(WTS/WOS);
- XT2=XO*(WTS/WOS);
- and
- YT2=(YO*(WTS/WOS))+S;
- and
- forming a target graphic data object on the target screen from the target points and the target line segments.
A computer graphics system for obtaining first and second target graphic data objects on a rectangular target screen based on first and second original graphic data objects on a rectangular original screen, the target screen having a different aspect ratio than that of the original screen, the computer graphics system comprising:
- means for identifying a line perpendicular to an edge of the original screen, wherein the line projects from a resizing point on the edge;
- means for determining that the first original graphic data object is proportionally resizable because the line does not intersect the first original graphic data object;
- means for determining that the second original graphic data object is non-proportionally resizable because the line intersects the second original graphic data object;
- means for determining a height, HOS, and a width, WOS, of the original screen;
- means for determining a height HTS, and a width, WTS, of the target screen;
- means for determining a resizing ratio, R, and a stretch distance, S, such that:
- if (HTS/HOS)>(WTS/WOS);
- R=WTS/WOS;
- and
- S=HTS−(R*HOS);
- and
- if (HTS/HOS)<(WTS/WOS):
- R=HTS/HOS;
- and
- S=WTS−(R*WOS);
- means for proportionally resizing the first original graphic data object to obtain a first target graphic data object, by calculating a height, HTO(1), and a width, WTO(1), of the first target graphic data object such that:
- HTO(1)=HOO(1)*R;
- and
- WTO(1)−WOO(1)*R;
- wherein HOO(1) represents a height of the first original graphic data object as measured between a top horizontal edge and a bottom horizontal edge of the first original graphic data object, and WOO(1) represents a width of the first original graphical data object, as measured between a left vertical edge and a right vertical edge of the first original graphic data object;
- means for proportionally resizing the second original graphic data object to obtain a proportional graphic data object, by calculating a height, HPO, and a width, WPO, of the proportional graphic data object such that:
- HPO=HOO(2)*R;
- and
- WPO=WOO(2)*R;
- wherein HOO(2) represents a height of the second original graphic data object as measured between a top horizontal edge of the second original graphic data object and a bottom horizontal edge of the second original graphic data object, and WOO(2) represents a width of the second original graphic data object as measured between a left vertical edge of the second original graphic data object and a right vertical edge of the second original graphic data object;
- and
- means for non-proportionally resizing the proportional graphic data object by, calculating a height, HTO(2), and a width WTO(2), of the second target graphic data object, such that:
- if (HTS/HOS)>(WTS/WOS);
- HTO(2)=HPO+S;
- and
- WTO(2)=WPO;
- and
- if (HTS/HOS)<(WTS/WOS):
- HTO(2)=HPO;
- and
- WTO(2)=WPO+S.
Dependencies are inferred from the claim text.