Not Applicable.
Not Applicable
Not Applicable
The present invention relates generally to comparing two continuous computer generated lines generated by the movements of a computer mouse or a digitizer tablet.
The process of comparing two continuous lines for equality is well-established. There are various algorithms that compare two continuous lines for equality, but the majority of algorithms require special digitizer tablets for sensing pressure. Algorithms that do not require pressure as a parameter for determining similarities do not offer the accuracy that is needed to determine if two continuous computer generated lines are similar. Today, there are many companies who have developed their own automated computer based verification system, but these systems make mistakes in recognizing the differences between two continuous lines.
What is needed is a highly reliable method for differentiating two continuous computer generated lines using a weighted distribution from 0 to 100.
According to the invention, a method is provided for comparing two sets of parametric representation of continuous lines over time. A parametric representation of a continuous line is represented by a set of {(x, y, t)} parameters. (x, y, t) represents a point (x, y) on the continuous line at time t.
In a typical application, the verification process would be performed by first normalizing the set of {(x, y, t)} parameters, calculate the time at each point, calculate the velocity at each point, calculate the angular velocity at each point and calculate the area of the line using the minimum and maximum (x, y) points.
At step 110, the present invention uses LineArray1 and LineArray2 to create two new velocity arrays, VelocityArray1 and VelocityArray2, respectively. A velocity array is a set of numeric values. The length of the velocity arrays is represented as VAL1 and VAL2; with VAL1 representing the length of VelocityArray1 and VAL2 represents the length of VelocityArray2. VAL1 and VAL2 is 1 less than the MinArrayLength. To calculate the individual velocity array element, the present invention uses two consecutive elements of the newly created line array, LineArray1 and LineArray2. In general, a computer program function can be use to describe the process which is apply to each data element of every element in LineArray1 and LineArray2. In the most general form, this function can be expressed using pseudo code:
SQRT is the standard mathematical square root function. The present invention then continues to step 120.
At step 120, the present invention uses LineArray1 and LineArray2 to create two new angular velocity arrays, AVA1 and AVA2, respectively. An angular velocity array is a set of numeric values. The length of the angular velocity array is represented as AVAL1 and AVAL2; with AVAL1 representing the length of AVA1 and AVAL2 represents the length of AVA2. AVAL1 and AVAL2 is 1 less than the MinArrayLength. To calculate the individual angular velocity array element, the present invention uses the first element of the line array and each element of the line array after the first element of the line array. In general, a computer program function can be use to describe the process which is apply to each data element of every element in LineArray1 and LineArray2. In the most general form, this function can be expressed using pseudo code:
GetAngle is a computer program function that takes in 4 parameters, x0, y0, x1, y1 and returns the angle of the line relative to the x, y plane. In general, the GetAngle computer program function can be expressed using pseudo code:
Math.Atan is the standard mathematical arc tangent function. Math.PI is a mathematical standard constant for pi. After the present invention creates the angular velocity arrays, the present invention continues to step 130, where the present invention begins to compare LineArray1 and LineArray2 for similarities.
After the present invention calculates the TP, the present invention continues to step 210.
At step 210, the present invention calculates the area percentage difference of LineArray1 and LineArray2. To calculate the area of LineArray1 and LineArray2, the present invention looks for the minimum and maximum x and y values. Once the minimum and maximum x and y values are obtained, the area is calculated by taking the difference between maximum and minimum x and multiply that with the difference between the maximum and minimum y and saves the area as area1 for LineArray1 and area2 for LineArray2. In the most general form, pseudo code can be use to express the calculation of area percentage AP.
The GetDifferenceX function takes in a set parametric value set {(x, y, t)}, finds the maximum and minimum x values and returns the difference between the maximum and minimum x values. The GetDifferenceY function takes in a set parametric value set {(x, y, t)}, finds the maximum and minimum y values and returns the difference between the maximum and minimum y values. Once the AP is calculated, the present invention continues to step 220.
At step 220, the present invention calculates the difference in velocity percentage between LineArray1 and LineArray2 and stores it as VP. To calculate the difference in velocity percentage between LineArray1 and LineArray2, the present invention uses the VelocityArray1 and VelocityArray2 created in step 110. In the most general form, pseudo code can be use to express the calculation of VP.
Once the present invention calculates the difference in velocity percentage VP, the present invention continues to step 230.
At step 230, the present invention calculates the difference in angular velocity percentage between LineArray1 and LineArray2 and stores it as AVP. To calculate the difference in angular velocity percentage between LineArray1 and LineArray2, the present invention uses the AVA1 and AVA2 of step 120. In the most general form, pseudo code can be use to express the calculation of AVP.
Once the present invention calculates the difference in angular velocity percentage AVP, the present invention continues to step 240.
At step 240, the present invention calculates the weighted average distribution by assigning a point value system from 0 to 100. The time percentage has a weighted value of 10. The velocity percentage has a weighted value of 40. The area percentage has a weighted value of 40. The angular velocity percentage has a weighted value of 10. To calculate the final percentage FP, the present invention multiples appropriate average percentage with the corresponding weighted percentage. In most general form, pseudo code can be use to express the final percentage similarity between LineArray1 and LineArray2.
FP=(TP*10)+(AP*40)+(VP*40)+(AVP*10)
After the final percentage FP is calculated, the present invention continues to Step 250.
At step 250, the present invention determines if the final percentage meets a certain criteria. If FP is greater than and equal to 80, then the present continues to step 270. At step 270, the present invention returns a true and continues to step 280 where the present invention ends. If FP is less than 80, then the present invention continues to step 260. At step 260, the present invention returns a false and continues to step 280 where the present invention ends.
This invention has now been explained with reference to specific embodiments. Other embodiments will be apparent to those of ordinary skill in the art in light of this disclosure. It is therefore not intended that this invention be limited except as indicated by the appended claims.