Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR MOVEMENT ON THE DISPLAY OF A DEVICE
Document Type and Number:
WIPO Patent Application WO/2017/048187
Kind Code:
A1
Abstract:
Disclosed is a method for movement on the display of a device. The method comprises obtaining (S110) position information for an anchor point on a two- dimensional display, the position information detailing a position on the display as x and y coordinates. The method further comprises obtaining (S110) width and height for an information container and positioning (S120) the information container on the display relative to the anchor point, thus obtaining position information for the information container on the display. The method further comprises detecting (S130) a movement relating to the device and creating (S140) values for a transformation matrix based on the movement relating to the device and a time duration of the movement relating to the device. The method further comprises applying (S150) the values of the transformation matrix on the position information of the information container, thus resulting in a movement of the information container on the display.

Inventors:
SELLIN LARS-ERIK (SE)
INGESTRÖM LINNÉA (SE)
Application Number:
PCT/SE2016/050870
Publication Date:
March 23, 2017
Filing Date:
September 15, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ADSSETS AB (SE)
International Classes:
G06F3/01
Foreign References:
US20130211923A12013-08-15
US20110288913A12011-11-24
US20150186944A12015-07-02
US20100136957A12010-06-03
US20140320434A12014-10-30
US20110202834A12011-08-18
Other References:
NIPPE100: "Adtile Motion Ads", YOUTUBE, 3 June 2014 (2014-06-03), XP054977337, Retrieved from the Internet [retrieved on 20161207]
Attorney, Agent or Firm:
BERGENSTRÅHLE & PARTNERS STOCKHOLM AB (SE)
Download PDF:
Claims:
CLAIMS

1 . A method for movement on a display of a device, comprising the steps of: obtaining (S100) position information for an anchor point on a two-dimensional display, the position information detailing a position on the display as x and y coordinates; obtaining (S1 10) width and height for an information container; positioning (S120) the information container on the display relative to the anchor point, thus obtaining position information for the information container on the display; detecting (S130) a movement relating to the device; creating (S140) values for a transformation matrix based on the movement relating to the device and a time duration of the movement relating to the device; applying (S150) the values of the transformation matrix on the position information of the information container, thus resulting in a movement of the information container on the display, wherein the movement relating to the device is a movement of the device.

2. The method according to claim 1 , wherein the applying step is based on a movement on the display of the device.

3. The method according to any one of claims 1 -2, wherein the applying step is based on a movement of the device.

4. The method according to any one of claims 1 -3, wherein the movement of the information container is a simulated upwards movement along a virtual z-axis towards a viewer of the display, achieved by gradually increasing the width and height of the information container.

5. The method according to any one of claims 1 -4, wherein detecting a movement relating to the device comprises detecting at least a first spatial position and a first rotational value relating to the device, and detecting at least a second spatial position and a second rotational value relating to the device, and comparing the values.

6. The method according to any one of claims 1 -5, wherein creating values for the transformation matrix comprises using multiple data points regarding position information relating to the device and rotational information relating to the device during a limited time interval, and wherein the influence of earlier data-points are successively reduced in comparison with later data points.

7. The method according to any one of claims 1 -6, wherein the method further comprises: detecting a plurality of consecutive positions of the device and applying the values of the transformation matrix on each detected position, thus making the

information container responsive to position changes of the device.

8. The method according to any one of claims 1 -7, wherein creating values for a transformation matrix comprises: creating values for a rotation matrix and values for a translation vector, and combining the values of the rotation matrix and the values of the translation vector to create the values of the transformation matrix.

9. The method according to any one of claims 1 -8 wherein creating values for the transformation matrix comprises: detecting translational and rotation information relating to the device at a time interval T as follows:

T2

d. a j,n 2 ' (1 .b) where a is the acceleration, i = α,β,γ corresponds to the rotation around the three axes j = x,y,z . ΔΖ represents the difference in degrees at between a data-point n and the data-point n - 1 and d is the translational displacement due to

acceleration, wherein the position of the information container is determined as: = iN-i - rfl - ,N - sn (3 a)

.Λ Λ ,· r/ - dj,N- sr c - (3 b) wherein N is the current data-point in time, ^corresponds to a factor of retardation, successively reducing the influence of earlier data-points on the current position and rotation, s corresponds to a scaling factor of the current change in orientation and position and c is a constant for converting the detected translational displacement to a displacement of the object on the screen.

10. A computer program product comprising a non-transitory computer readable medium storing computer instructions for creating movement on a display of a device, performed by a computer, the computer comprising a processing device and a memory device, wherein the processing device is configured to execute computer-readable computer instructions for performing a method according to any of claims 1 -9.

Description:
METHOD FOR MOVEMENT ON THE DISPLAY OF A DEVICE

Technical field

[0001 ]The present invention relates to a method for movement on a display of a device, typically but not necessarily a portable one such as a smartphone or tablet.

Background

[0002] Different ways of displaying electronic information on a two-dimensional display, such as a Liquid Crystal Display, LCD, are known. One example of information displayed on a display is banners. Generally, a banner is a way of displaying information for use in an environment defined by a publisher, such as a web page or a mobile application. Banners are often represented in two dimensions and are rectangular in shape. Banners may contain content (such as text, pictures, animations or other visual data) within their borders, and are generally shown near a top edge or bottom edge of a viewable portion of the environment.

[0003]When presenting information, especially information related to various offers or similar information, it is usually desirable to be able to present data in a way that is appealing to the viewer while causing minimal disturbance from their main focus.

[0004]A problem with current methods used movement on displays is that they are often seen as too invasive while not feeling interesting enough to warrant further attention. It would be desirable to achieve movement in a way that is more appealing to a viewer, which might increase the likelihood of the viewer choosing to view the presented information.

[0005] Further, it would be desirable to have method for movement that would

make inanimate objects on a screen appear more natural. Summary of the invention

[0006] It is an object of the invention to be overcome at least some of the problems outlined above. It is further an object to achieve a movement on a display that is not disturbing to a viewer. It is further an object to achieve a movement being perceived as having inertia.

[0007]According to a first aspect, there is provided a method for movement on the display of a device. The method comprises obtaining position information for an anchor point on a two-dimensional display, the position information detailing a position on the display as x and y coordinates. The method further comprises obtaining width and height for an information container and positioning the information container on the display relative to the anchor point, thus obtaining position information for the information container on the display. The method further comprises detecting a movement of the device and creating values for a transformation matrix based on the movement of the device and a time duration of the movement of the device. The method further comprises applying the values of the transformation matrix on the position information of the information container, thus resulting in a movement of the information container on the display.

[0008] By using a method according to the present disclosure, it is possible to

achieve movement of an object on a display that is more natural and less inanimate. Further, it is possible to achieve movement of objects that is more like how objects move in reality, such that they appear to have a weight and that there is inertia to their movements, even though they are in reality virtual objects without any mass.

[0009]According to one embodiment, the applying step is based on a movement on the display of the device. According to another embodiment, the applying step is based on a movement of the device. Typically, the applying step being based on a certain movement means that it is triggered by such movement, such that a certain movement initiates the applying step. [0010]According to one embodiment, the movement of the information container is a simulated upwards movement along a virtual z-axis towards a viewer of the display, achieved by gradually increasing the width and height of the

information container. By using such a movement, it is possible to achieve simulated three-dimensional graphics on a two-dimensional display, which movements are more natural than current methods allow for.

[001 1 ]According to one embodiment, the detecting of a movement relating to the device comprises detecting at least a first spatial position and a first rotational value relating to the device, and detecting at least a second spatial position and a second rotational value relating to the device, and comparing the values. In some embodiments, this detecting is done by hardware of the device, such as a gyro. In other embodiments, the movement relating to the device may be detected and measured by software on the device, especially when the movement relating to the device is a movement on the display of the device, such as a scroll gesture or zooming.

[0012]According to one embodiment, creating values for the transformation matrix comprises using multiple data points regarding position information relating to the device and rotational information relating to the device during a limited time interval, and wherein the influence of earlier data-points are successively reduced in comparison with later data points.

[0013]According to one embodiment, the method further comprises detecting a plurality of consecutive positions of the device and applying the values of the transformation matrix on the detected position, thus making the information container responsive to any position change of the device. By detecting a plurality of positions of the device it is possible to achieve an information container that is responsive to movements of the device, such that if a user moves the device to one direction, the information container also moves in that direction. In some embodiments, the information container may move relative to the direction, such as opposite or with a certain displacement. [0014]According to one embodiment, creating values for a transformation matrix comprises creating values for a rotation matrix and values for a translation vector, and combining the values of the rotation matrix and the values of the translation vector to create the values of the transformation matrix.

[0015]According to a second aspect, there is provided a computer program

product comprising a non-transitory computer readable medium storing computer instructions for creating movement on a display of a device, performed by a computer, the computer comprising a processing device and a memory device, wherein the processing device is configured to execute computer-readable computer instructions for performing a method according to any of claims 1 -1 1 .

Brief description of drawings

[0016] Fig. 1 shows a flow chart of the steps of a method according to the present disclosure.

[0017]Fig. 2a shows an information container being displayed on the display of a device, before a movement according to the present disclosure occurs.

[0018]Fig. 2b shows an information container being displayed on the display of a device, after a movement according to the present disclosure occurs.

Description of embodiments

[0019] In the following, a detailed description of the different embodiments of the solution is disclosed with reference to the accompanying drawings. All examples herein should be seen as part of the general description and are therefore possible to combine in any way in general terms. Individual features of the various embodiments and methods may be combined or exchanged unless such combination or exchange is clearly contradictory to the overall function of the implementation. [0020]Throughout the documents, there are references to width and height of various virtual containers and units. It should be understood that width and height are relative terms that are dependent on how the object is viewed, but for the sake of this disclosure the terms shall be interpreted as relative to how a viewer would perceive them during normal view. For two-dimensional objects, the (virtual) y-axis should be considered as "height" and movements along the y-axis are considered as up and down movements, the (virtual) x-axis should be considered as "width" and movements along the x-axis are considered as left and right movements. For three-dimensional objects, the same applies and additionally the (virtual) z-axis represents "depth", and movements along the z- axis are considered as movements towards and away from a viewer.

[0021 ]The term "viewer" is intended to denote a person viewing the display of a device on which the method is performed.

[0022]The term "computer" is intended to denote a device comprising a processing device and a memory device operatively coupled to the processing device, preferably associated with a database. A computer may further be connected to other computers, and/or to a computer network, such as the Internet.

[0023] Briefly described, the present disclosure relates to a method and computer program product for simulating three-dimensional display of data on a two- dimensional display by an electronic device. The solution achieves a display of information that, by a viewer, is seen as hovering over two-dimensional information typically displayed on the device, such as text or pictures. The solution achieves an interactive display of information that moves in

correspondence with movement of the device, or more precisely converts acceleration of the device into movement of the displayed information. The displayed information moves in a non-linear fashion, which simulates a feeling of inertia. Furthermore, in some embodiments, the displayed information strives to go back to an original position after movement, simulating the feeling of the displayed information moving on a magnetic field. The solution will now be described more in detail with reference to the accompanying drawings.

[0024]Fig. 1 shows a method for simulating three dimensional display of data on a two-dimensional screen according to the present disclosure. Typically, the method is performed by a computer, the computer comprising at least a processing device, a memory device operatively coupled to the processing device and at least one database associated with the computer. The method is preferably used on portable devices comprising a display, such as a

smartphone or a tablet.

[0025]The method comprises obtaining S100 position information for an anchor point, the position information detailing a position on the display of a device as x and y coordinates. It should be understood that this may also be seen as a position relative to what is shown on the display, such as a web page, rather than relative to the display itself. The anchor point is intended to act as an anchor for an information container, such that the position of the information container relates to the position of the anchor point.

[0026]The method further comprises obtaining S1 10 width and height for an

information container. According to the present disclosure, an information container is a space on a display into which information, such as e.g. text or pictures, may be placed. In some embodiments, the maximum width and height for the information container is less than or equal to the width and height of the display of the device on which the method is performed.

[0027]After obtaining S1 10 width and height information for the information

container, the method comprises positioning S120 the information container on the display relative to the anchor point. For example, the anchor point may be positioned approximately one fourth of the distance from the bottom to the top of the display (and correspondingly three fourths of the distance from the top to bottom), and the information container is positioned to cover approximately the bottom half of the display. The anchor point and the information container may in some embodiments be seen as one step such that the information container is positioned directly on and relative to the display.

[0028]The method may optionally further comprise obtaining graphical data to be inserted into the information container and inserting the data into the

information container. The data may be seen as the information that is to be displayed to a viewer, and may be any kind of graphical data that may be perceived by a viewer, such as e.g. text, pictures and photographs, and in some embodiments it may be streamed graphical information such as video. This optional obtaining step typically comprises retrieving the data from a database associated with the device on which the method is performed, or which is operatively connected to the device. In some embodiments the device may be connected to the database through a computer network, such as e.g. the Internet. In some embodiments, graphical data to be presented is already present in the information container.

[0029]The method further comprises detecting S130 a movement relating to the device. This movement may be a movement of the device, e.g. a position change of the device, or it may be a movement on the screen of the device, such as a scrolling movement. If the movement is a movement of the device, it is typically detected by hardware present in the device, such as a gyro.

[0030]The method further comprises creating S140 values for a transformation matrix based on the detected movement relating to the device. The values are based on how changes in rotational and translational information affect device. The values are typically measured with three degrees of freedom, but it should be understood that any or multiple of the six values (three for rotation in three directions, three for translation along three axes) may be zero. This may typically be the case when the movement relating to the device is a movement on the display of the device, which usually does not have rotational values, at least not in all three directions. [0031 ]The transformation matrix is in some embodiments based on changes in the position and orientation of the device, which is typically provided by hardware of the device, such as a gyro. The way these changes are handled and provided may change depending on the device. The changes in position and orientation may be seen as linear during short time intervals. Based on this, a discrete function is created with a linear dependency on a current data point, and with a non-linear dependency on previous data points. This discrete function simulates inertia, and makes the movement of the information container non-linear. The discrete function uses and is used to describe movements in three directions with two degrees of freedom. The values from these functions enables determination of a rotational matrix for transformation of coordinates in a simulated three-dimensional space. Further, the function values for the translation values enables determination of a translation vector for the coordinates, which is used to translate coordinates for the position of the device into coordinates in the simulated three-dimensional space. The translation vector and the rotational matrix is combined to a transformation matrix which may be applied to position information of the information container.

[0032] In order to counteract possible disturbances in the input signals to the

device, the direction of weight acceleration is checked in order to determine if the input signals risk to provide contradictory or erroneous data. In such cases when it is determined that there is a risk for such contradictory or erroneous data, the input signals may be replaced by constant values. Further, the input signals are made discrete by rounding the values to a predetermined amount of decimals. After this procedure, the signals are run through a translating function with the purpose of making it so that the information container does not move if the perceived position change of the device is too small. In effect, this makes it so that very small changes in position of the device does not entail any movement of the information container on the display of the device. Depending on various factors such as e.g. the size of the device and personal preference, these values may differ in different embodiments of the current disclosure.

[0033]The method further comprises applying S150 the values of the

transformation matrix on the position information of the information container, thus resulting in a new position for the information container, which in turns results in the information container moving on the display of the device.

Because of how the values for the transformation matrix are calculated, the movement based on the transformation matrix will be seen as having inertia and time delay. This is due to a factor of retardation being applied, which successively reduces the influence of earlier data points on a current position and rotation for the information container.

[0034] In some embodiments, the information container may be responsive to movement of the device. This may be achieved through detecting a plurality of consecutive data points regarding a position of the device, and applying the values of the transformation matrix on each detected position. The movement of the device which the information container may be moved in response to may be any kind of movement, such as a scroll movement, a position change in the position of the device, or other similar movements such as typing or zooming.

[0035]ln some embodiments the movement of the information container resulting from step S150 comprises the information container moving along a virtual z- axis, simulating a movement in three dimensions that is perceived as being towards a viewer of the display of the device. In some embodiments, this is achieved by gradually and continually, for a limited period of time, increasing the width and height of the information container, in order to simulate that it moves towards the viewer. The width and height may have a predetermined relationship that is not altered during the increase, which entails that the information container is not perceived as altering its proportions. [0036] In some embodiments, the resulting movement may also comprise moving the information container in directions along the x and y axes of the display of the device, after the initial movement along the virtual z-axis. The first movement along the virtual z-axis may be made in order to make the

information container "hover" above other information on the display, such as text or pictures. Subsequent movement is, as mentioned, typically done after the virtual movement towards the viewer along the z-axis, which entails that the information container is perceived as moving above the other information on the display. In some embodiments, this movement may be restricted. For example, it may be restricted such that the information container is not allowed to move more than a certain distance away from the anchor point, or it may be restricted such that the information container is not allowed to move more than a certain distance within boundaries of the display.

[0037] In some embodiments, the movement of the information container on the display of the device may be adapted to mimic, be the same, or be similar to the movement of the device. For example, if the device was moved to the right, the information container may move to the right. In other embodiments, the movement of the information container may be opposite to the detected movement of the device. It should be understood that there are many different types of relationships between the movement of the device and the movement of the information container. A detected movement of the device results in a movement of the information container. It may be seen as that a detected movement of the device results in a corresponding, though not necessarily the same, movement of the information container.

[0038] In some embodiments, the detecting of a movement relating to the device comprises detecting at least a first spatial position, i.e. information regarding the position of the device in a room, and a first rotational value relating to the device, and detecting at least a second spatial position and a second rotational value relating to the device, and comparing the values. [0039] In some embodiments, creating values for the transformation matrix comprises using multiple data points regarding position information relating to the device and rotational information relating to the device during a limited time interval, and wherein the influence of earlier data-points are successively reduced in comparison with later data points. This is done to achieve inertia and time delay for movements using the transformation matrix, which is advantageous since such movements are typically considered to be less disturbing and less inanimate by a viewer.

[0040] In some embodiments, creating values for a transformation matrix

comprises creating values for a rotation matrix and values for a translation vector, and combining the values of the rotation matrix and the values of the translation vector to create the values of the transformation matrix.

[0041 ] In some embodiments, the method further comprises a step of creating

S160 a dependence between the anchor point and the information container such that the information container always strives to go back to a certain position relative the anchor point, called original position for the purpose of illustration. The movement of the information container when it strives to go back to its original position typically follows the same rules as the movement in response to a position change of the device, i.e. it is non-linear and has inertia and a time delay. By having non-linear movements the method according to the present disclosure achieves an information container that behaves in a way that is perceived as more natural for a typical viewer, as compared to having linear movements which are typically perceived as more inanimate and unnatural. When a dependence is created as described in step S160, to a viewer it may appear like the information container is bound to the anchor point in a similar way to as if a rubber band was wrapped around both the anchor point and the information container.

[0042]Looking now at figs. 2a and 2b, one embodiment of the invention will be described more in detail. Fig 2a shows the edges of a display 200 of a device, typically a smartphone or tablet, an information container 210 and an anchor point 220. It should be understood that the display in the figure does not have any pictures or text on it for the sake of clarity, but in reality there will most likely be other information present on the display than the information container 210. The anchor point 220 is also shown in the figure, but it should be understood that the anchor point is not visible to a viewer.

[0043]As mentioned previously, the information container 210 and any data

related to the information container may typically be seen as one unit. In some embodiments, the data may take up less than the whole information container 210, and it may in some embodiments also be possible for the data to take up more than the visible area of the information container 210, e.g. through the use of zooming functionality.

[0044]As described previously in relation to the method steps, one possible

movement for the information container 220 is an upwards movement, which is what is illustrated in figs. 2a and 2b, or rather the movement that happens between the state shown in Fig. 2a and the state shown in Fig. 2B.

[0045]Fig. 2a shows an information container 210 that has a position relative to the anchor point 220. The information container 210 the undergoes a simulated upwards movement along a simulated z-axis, which to a viewer appears as the information container 210 coming closer to the viewer. This is typically achieved by increasing the width and height of the information container 210, and also by adding shadows for further simulating three-dimensional graphics.

[0046]Fig. 2b shows the enlarged version of the information container 210, an

outer boundary 230 and shadows 240. The shadows contributes to the simulation of three-dimensional graphics. Even though, at discrete points in time, the information container 210, the outer edges 230 and the shadows 240 may be seen as one unit, it should be understood that the information container 210 and the shadows 240, which entails the outer edges 230 (which may be seen as a function of the shadows 240, or the other way around), move differently but with a determined relationship between one another, the same way as the shadow of an object moves relative, but not the same, as the object. The movement along the simulated z-axis uses the same

transformational matrix for movement as disclosed previously, used to simulate inertia for the movement.

[0047] In some embodiments, the transformation matrix of this disclosure is an important part. The way this transformation matrix is achieved will now be described in more detail, with the mathematical formulas used.

[0048] By collecting data regarding the device's translational and rotational

movement at a certain time interval T, two types of data series can be obtained accordingly

T 2

d. ■a,. (1 .b) where a is the acceleration, i = , ,χ corresponds to the rotation around the three axes j = x,y,z. ΔΖ represents the difference in degrees at between a data-point n and the data-point n - l. d is the translational displacement due to acceleration.

[0049]Eq. 1 .a-b provides the parameters the virtual object on the display is

intended to respond to. In the corresponding coordinate system of the virtual object, using the same denotations as above, the current position and rotation of the virtual object would be

N

i N =∑(AZ , (2.a)

N

j N =∑d n , (2.b)

n =0 where N is the current data-point in time. That is, if it were to follow the device as a free individual object. In reality, the virtual object is a part of the device and therefore already at the same position and orientation as the device. In order to simulate the imagined behavior of a free individual object following the device, eq. 2.a-b are manipulated accordingly for the virtual object = ½-!- r f, ~ ,N - Sp ( 3 - a )

J N 7\ ,· r fj - d N - s . (3.b) where ^corresponds to a factor of retardation, successively reducing the influence of earlier data-points on the current position and rotation. This simulates the inertia and time delay of the virtual object, s corresponds to a similar scaling factor of the current change in orientation and position in order to simulate internal inertia (the virtual object will appear to have a mass of some magnitude) and external forces (air resistance and etc.). c is just a suitable constant for converting the real translational displacement in meters to a displacement of the object on the screen. Together eq. 3.a-b creates the illusion that the virtual object is a free individual object connected to the device by some physical force (such as magnetism) and not a part of the device itself.

[0050]Eq. 3.a-b provides numerical values for the current transformation of initial coordinates of the virtual object in the virtual 3D-space, at a certain point in time. The numerical values are typically the values used for the transformation matrix used in this disclosure.

[0051 ] It should be understood that even though the above calculations are

typically based on collected data regarding the device's translational and rotational movement at a certain time interval T, in some embodiments it is also possible to base it on computed values for translational and rotational movement during a certain time interval. It should be further understood that the rotational and/or position data may be based on a movement on the display of the device, rather than on a movement of the device. 52]Although the description above contains a plurality of specificities, these should not be construed as limiting the scope of the concept described herein but as merely providing illustrations of some exemplifying embodiments of the described concept. It will be appreciated that the scope of the presently described concept fully encompasses other embodiments which may become obvious to those skilled in the art, and that the scope of the presently described concept is accordingly not to be limited. Reference to an element in the singular is not intended to mean "one and only one" unless explicitly so stated, but rather "one or more". Moreover, it is not necessary for an apparatus or method to address each and every problem sought to be solved by the presently described concept, for it to be encompassed hereby.