Claims
- 1. An apparatus for editing documents comprising:
- (a) means for providing an electronic version of a hardcopy document;
- (b) an x-y digitizer having a digitizer surface for receiving the hardcopy document for editing of the hardcopy document, the digitizer comprising means for editing the hardcopy document received on the digitizer surface including means for marking directly on the hardcopy document, and means for providing a digitized version of the edit made to the hardcopy document;
- (c) means for correlating the position of the hardcopy document received on said digitizer surface for editing with the electronic version of the hardcopy document;
- (d) means for combining the digitized version of the edit made to the hardcopy document and the electronic version of the hardcopy document as an edited electronic document;
- (e) wherein the means for correlating the position of the hardcopy document on the digitizer surface for editing with the electronic version of the hardcopy document comprises means for determining scale, rotation and offset of the hardcopy document on the digitizer surface with the electronic version of the hardcopy document;
- (f) wherein the means for determining the scale, rotation and offset of the hardcopy document comprises said marking means for identifying at least one point on the hardcopy document when said hardcopy document is received on said digitizer surface, said determining means further comprising:
- said means for providing a digitized version of the edit made to the hardcopy document for providing a digitized version of said at least one point identified on the hardcopy document;
- means independent of at least said digitizer surface for displaying an image of the electronic version of the hardcopy document;
- at least one identification means displayed on said displaying means;
- means for adjusting a location of said at least one identification means for positioning said at least one identification means at at least one point on said image of the electronic version of the hardcopy document corresponding to the at least one point identified on the hardcopy document by said marking means; and
- program means for processing said digitized version of said at least one point on the hardcopy document and said at least one point on said image of the electronic version of the hardcopy document to determine at least one of the scale, portion and offset of the hardcopy document; and
- (g) wherein one point on the hardcopy document and one point on the image of the electronic version of the hardcopy document are identified when scale and rotation are known, and said program means determines the offset by solving the expressions:
- Xoffset=(XDSP1/Xscale)-XDIG1
- Yoffset=(YDSP1/Yscale)-YDIG1
- where XDSP1 and YDSP1 are coordinated of the identified point on the displaying means and XDIG1 and YDIG1 are coordinates of the identified point on the x-y digitizer.
- 2. An apparatus according to claim 1, wherein the electronic version of the hardcopy document is provided in digital form.
- 3. An apparatus according to claim 1, wherein the means for providing an electronic version of an hardcopy document comprises a scanner adapted to scan the hardcopy document into digital form.
- 4. An apparatus according to claim 1, wherein the means for editing the hardcopy document comprises a digitizer pen including the means for marking directly on the hardcopy document.
- 5. An apparatus according to claim 4, wherein the digitizer pen comprises a tip switch adapted to actuate when sufficient pressure is applied by the digitizer pen to mark the hardcopy document.
- 6. An apparatus according to claim 1, wherein the means for determining the rotation of the hardcopy document comprises means for positioning the hardcopy document in a known rotational orientation on the x-y digitizer, wherein the positioning means comprises stop means extending outward from and in a predetermined position relative to said digitizer surface for receiving said hardcopy document in said known rotational orientation.
- 7. An apparatus according to claim 1, wherein the apparatus further comprises means for displaying the electronic version of the hardcopy document.
- 8. An apparatus according to claim 1, wherein the apparatus further comprises means independent of at least said digitizer surface for displaying an image of the edited electronic document at substantially the same time as said hardcopy document is edited by said marking means.
- 9. An apparatus according to claim 8, wherein the means for displaying the edited electronic document is provided at at least one location selected from locations local to the x-y digitizer and locations remote from the x-y digitizer.
- 10. An apparatus according to claim 1, wherein said apparatus further comprises storing means for storing at least one of the electronic version of the hardcopy document, the digitized version of the edit made to the hardcopy document and the edited electronic document.
- 11. An apparatus according to claim 8, wherein two points on said hardcopy document and two points on said image of the electronic version of the hardcopy document are identified when the rotation is known, and said program means determines the scale and offset by solving the expressions:
- Xscale=(XDSP2-XDSP1)/(XDIG2-XDIG1)
- Yscale=(YDSP2-YDSP1)/(YDIG2-YDIG1)
- Xoffset=(XDSP1/Xscale)-XDIG1
- Yoffset=(YDSP1/Yscale)-YDIG1
- where XDSP1, YDSP1 and XDSP2, YDSP2 are coordinates of the identified points on the displaying means and XDIG1, YDIG1 and XDIG2 and YDIG2 are coordinates of the identified points on the x-y digitizer.
- 12. An apparatus according to claim 1, wherein three points on said hardcopy document and three points on said image of said electronic version of the hardcopy document are identified when neither rotation, offset or scale are known, and said program means determines the scale, rotation and offset by solving the expressions:
- ydb1=yd1-xd1*(yd2-yd1)/(xd2-xd1)
- Lg12=((yg2-yg1)**2+(xg2-xg1)**2)**1/2
- Ld12=((yd2-yd1)**2+(yd2-yd1)**2)**2)**1/2
- L1b1=((yd1-ydb1)**2+xd1**2)**2)**1/2
- L1B1=L1b1*(Lg12/Ld12)
- xB1=xg1-L1B1*(xg2-xg1)/Lg12
- yB1=yg1-L1B1*(yg2-yg1)/Lg12
- ydb2=yd2-xd2*(yd3-yd2)/(xd3-xd2)
- Lg23=((yg3-yg2)**2+(xg3-xg2)**2)**2)**1/2
- Ld23=((yd3-yd2)**2+(xd3-xd2)**2)**2)**1/2
- L2b2=((yd2-ydb2)**2+xd2**2)**2)**1/2
- L2B2=L2b2*(Lg23/Ld23)
- xB2=xg2+/-L2B2*(xg3-xg2)/Lg23
- yB2=yg2+/-L2B2*(yg3-yg2)/Lg23
- yscale=(ydb2-ydb1)/((xB2-xB1)**2+(yB2-yB1)**2)**2)**1/2
- xdd1-ydb1*(xd2-xd1)/(yd2-yd1)
- Lg12=((yg2-yg1)**2+(xg2-xg1)**2)**2)**1/2
- Ld12=((yd2-yd1)**2+(yd2-yd1)**2)**2)**1/2
- L1d1=((yd)**2+(xd1-xdd1)**2)**2)**1/2
- L1D1=I1d1*(Lg12/Ld12)
- xD1=xg1-L1D1*(xg2-xg1)/Lg12
- yD1=yg1-L1D1*(yg2-yg1)/Lg12
- Lg23=((yg3-yg2)**2+(xg3-xg2)**2)**2)**1/2
- Ld23=((yd3-yd2)**2+(xd3-xd2)**2)**1/2
- L2d2=((yd2)**2+(xd2-xdd2)**2)**1/2
- L2D2=L2d2*(Lg23/Ld23)
- xdd2=-ydb2*(xd3-xd2)/(yd3-yd2)
- xD2=xg2+/-L2D2*(xg3-xg2)/Lg23
- yD2=yg2+/-L2D2*(yg3-yg2)/Lg23
- Xscale+(xdd2-xdd1)/((xD2-xD1)**2+(yD2-YD1)**2)**1/2
- SlpB-(yB2-yB1)/(xB2-xB1)
- IntB=yB2-SlpB*xB2
- SlpD=(yD2-yD1)/(xD2-xD1)
- IntD=yD2-SlpD*xD2
- y=SlpB x+IntB
- -y=SlpD x-IntD
- O=(SlpB-SlpD)x+(IntB-IntD)
- x=Xoffset=(IntD-IntB)/(SlpB-SlpD)
- Yoffset=Xoffset*SlpB+IntB
- sin theta=(xB2-xB1)/((xB1-xB2)**2+(yB1-yB2)**2)**1/2
- cos theta=(yB2-yB1)/((xB1-xB2)**2+(yB1-yB2)**2)**1/2
- xrotate=xdig* cos theta-ydig* sin theta
- yrotate=ydig* cos theta+xdig* sin theta
- xdsp=Xscale*(xrotate+Xoffset)
- ydsp=yscale*(yrotate+Yoffset)
- where xd1, yd1; xd2, yd2 and xd3, yd3 are coordinates of the identified points on the displaying means; xg1,yg1; xg2, yg2 and xg3, yg3 are coordinates of the identified points on the x-y digitizer; b1, b2 are the intercept points of lines through points 1 and 2, and points 2 and 3 with the y-axis on the x-y digitizer; B1 B2 are points on the displaying means corresponding to points b1, b2; L is distance; Slp is slope; Int is intercept; d1, d2 are the intercept points of lines through points 1 and 2, and points 2 and 3 with the x-axis on the x-y digitizer; D1, D2 are points on the displaying means corresponding to points d1, d2.
- 13. A method for editing documents comprising the steps of:
- (a) providing an electronic version of a hardcopy document;
- (b) positioning the hardcopy document on a surface of an x-y digitizer for editing of the hardcopy document;
- (c) correlating the positioning of the hardcopy document received on the digitizer surface for editing with the electronic version of the hardcopy document;
- (d) editing directly on the hardcopy document received on the digitizer surface;
- (e) digitizing the edit made to the hardcopy document;
- (f) combining the digitized edit made to the hardcopy document and the electronic version of the hardcopy document to produce an edited electronic document;
- (g) wherein correlating the position of the hardcopy document with the electronic version of the hardcopy document comprises determining scale, rotation and offset of the hardcopy document and correlating the scale, rotation and offset of the hardcopy document with electronic version of the hardcopy document;
- (h) wherein at least one of the scale, rotation and offset of the hardcopy document is determined by identifying at least one point on the hardcopy document, digitizing the at least one point identified on the hardcopy document, displaying independent of at least said digitizer surface an image of the electronic version of the hardcopy document, displaying at least one identification means on the image of the electronic version of the hardcopy document, adjusting a location of said at least one identification means for positioning said at least one identification means at at least one point on the image of the electronic version of the hardcopy document corresponding to the position of the at least one point identified on the hardcopy document and processing via a program means, said digitized version of said at least one point on the hardcopy document and said at least one point on said image of the electronic version of the hardcopy document to determine at least one of the scale, rotation and offset of the hardcopy document; and
- (i) wherein one point on the hardcopy document and one point on the image of the electronic version of the hardcopy document are identified when scale and rotation are known, and said program means determines the offset by solving the expressions;
- Xoffset=(XDSP1/Xscale)-XDIG1
- Yoffset=(YDSP1/Yscale)-YDIG1
- where XDSP1 and YDSP1 are coordinates of the identified point on the displaying means and XDIG1 and YDIG1 are coordinates of the identified point on the x-y digitizer.
- 14. A method according to claim 13, wherein the electronic version of the hardcopy document is provided by scanning the hardcopy document into digital form.
- 15. A method according to claim 13, wherein a digitizer pen is used to edit the hardcopy document and to digitize the edit made to the hardcopy document.
- 16. A method according to claim 14, wherein the rotation of the hardcopy document is determined by positioning the hardcopy documents in a known rotational orientation on the x-y digitizer relative to stop means extending outward from and in a predetermined position relative to said digitizer surface.
- 17. A method according to claim 13, further comprising the step of displaying the electronic version of the hardcopy document.
- 18. A method according to claim 13, further comprising the step of displaying independent of at least said digitizer surface the edited electronic document and at substantially the same time as said hardcopy document is being edited directly thereon.
- 19. A method according to claim 18, wherein the edited electronic document is displayed at at least one location selected from locations local to the x-y digitizer and locations remote from the x-y digitizer.
- 20. A method according to claim 12, wherein at least one control unit is used to store the electronic version of the hardcopy document, the digitized edit made to the hardcopy document and the edited electronic document.
- 21. A method according to claim 13, wherein two points on said hardcopy document and two points on said image of the electronic version of the hardcopy document are identified when the rotation is known, and said program means determines the scale and offset by solving the expressions:
- Xscale=(XDSP2-XDSP1)/(XDIG2-XDIG1)
- Yscale=(YDSP2-YDSP1)/(YDIG2-YDIG1)
- Xoffset=(XDSP1/Xscale)-XDIG1
- Yoffset=(YDSP1/Yscale)-YDIG1
- where XDSP1, YDSP1 and XDSP2 and YDSP2 are coordinates of the identified points on the displaying means and XDIG1, YDIG1 and XDIG2 and YDIG2 are coordinates of the identified points on the x-y digitizer.
- 22. A method according to claim 17, wherein three points on said hardcopy document and three points on said image of said electronic version of the hardcopy document are identified when neither rotation, offset or scale are known, and said program means determines the scale, rotation and offset by solving the expressions:
- ydb1=yd1-xd1*(yd2-yd1)/(xd2-xd1)
- Lg12=((yg2-yg1)**2+(xg231 xg1)**2)**1/2
- Ld12=((yd2-yd1)**2+(yd2-yd1)**2)**1/2
- L1b1=((yd1-ydb1)**2+xd1**2)**1/2
- L1B1=L1b1*(Lg12/Ld12)
- xB1=xg1-L1B1*(xg2-xg1)/Lg12
- yB1=yg1-L1B1*(yg2-yg1)/Lg12
- ydb2=yd2-xd2*(yd3-yd2)/(xd3-xd2)
- Lg23=((yg3-yg2)**2+(xg3-xg2)**2)**1/2
- Ld23=((yd3-yd2)**2+(xd3-xd2)**2)****2)**1/2
- L2b2=((yd2-ydb2)**2+xd2**2)**1/2
- L2B2=L2b2*(Lg23/Ld23)
- xB2=xg2+/-L2B2*(xg3-xg2)/Lg23
- yB2=yg2+/-L2B2*(yg3-yg2)/Lg23
- yscale=(ydb2-ydb1)/((xB2-xB1)**2+(yB2-yB1)**2)**1/2
- xdd1-ydb1*(xd2-xd1)/(yd2-yd1)
- Lg12=((yg2-yg1)**2+(xg2-xg1)**2)**1/2
- Ld12=((yd2-yd)**2+(yd2-yd1)**2)**1/2
- L1d1=((yd1)**2+(xd1-xdd1)**2)**1/2
- L1D1=L1d1*(Lg12/Ld12)
- xD1=xg1-L1D1*(xg2-xg1)/Lg12
- yD1=yg1-L1D1*(yg2-yg1)/Lg12
- Lg23=((yg3-yg2)**2+(xg3-xg2)**2)**1/2
- Ld23=((yd3-yd2)**2+(xd3-xd2)**2)**1/2
- L2d2=((yd2)**2+(xd2-xdd2)**2)**1/2
- L2D2=L2d2*(Lg23/Ld23)
- xdd2=-ydb2*(xd3-xd2)/(yd3-yd2)
- xD2=xg2+/-L2D2*(xg3-xg2)/Lg23
- yD2=yg2+/-L2D2*(yg3-yg2)/Lg23
- Xscale=(xdd2-xdd1)/((xD2-xD1)**2+(yD2-YD1)**2)**1/2
- SlpB=(yB2-yB1)/(xB2-xB1)
- IntB=yB2-SlpB*xB2
- SlpD(yD2-yD1)/(xD2-xD1)
- IntD=yD2-SlpD*xD2
- y=SlpBx+IntB
- -y=SlpDx-IntD
- O=(SlpB-SlpD)x+(IntB-IntD)
- x=Xoffset=(IntD-IntB)/(SlpB-SlpD)
- Yoffset=Xoffset*SlpB+IntB
- sin theta=(xB2-xB1)/((xB1-xB2)**2+(yB1-yB2)**2)**1/2
- cos theta=(yB2-yB1)/((xB1-xB2)**2+(yB1-yB2)**2)**1/2
- xrotate=xdig* cos theta-ydig* sin theta
- yrotate=ydig* cos theta+xdig* sin theta
- xdsp=Xscale*(xrotate+Xoffset)
- ydsp=yscale*(yrotate+Yoffset)
- where xd1, yd1; xd2 , yd2 and xd3, yd3 are coordinates of the identified points on the displaying means; xg1, yg1; xg2, yg2 and xg3, yg3 are coordinates of the identified points on the x-y digitizer; b1, b2 are the intercept points of lines through points 1 and 2, and points 2 and 3 with the y-axis on the x-y digitizer; B1 B2 are points on the displaying means corresponding to points b1, b2; L is distance; Slp is slope; Int is intercept; d1, d2 are the intercept points of lines through points 1 and 2, and points 2 and 3 with the x-axis on the x-y digitizer; D1, D2 are points on the displaying means corresponding to points d1, d2.
Parent Case Info
This application is a continuation, of application Ser. No. 08/266,138, filed Jun. 27, 1994.
US Referenced Citations (36)
Continuations (1)
|
Number |
Date |
Country |
| Parent |
266138 |
Jun 1994 |
|