TDCC LAB. SATELLITE
                                                                                                                              JAPANESE

Heart Curves II

Nobuo YAMAMOTO

     1.  Preface

     It is tried that a cardioid is reformed into a heart curve.
    The first method is to make a corner on the round bottom of a cardioid by decreasing the phase angle linearly.    The second method is to make a corner on the round bottom by a nonlinear conversion of the phase angle.


Fig.1  Cardioid

     2.  method 1

     Though the cardioid is introduced in the page of Wolfram Math World,   the equation expressing a cardioid is rewritten as the following after the length and width are replaced.
       ,                       (1)
where R and t indicate the moving radius and the phase angle respectively.
     The location of the coordinate origin will be intended to be replaced to the bottom of the cardioid in Fig.1.      In this figure,
       .
       ,                       (2)
where .

Moreover,
       .
If we substitute Eqs.(1) and (2) into the above equation, we obtain


Fig.2  The definition of

       ,                       (3)
where .

     The newly defined phase angle w of the cardioid after the replacement of the coordinate origin, which is shown in Fig.2, is written as
       ,                       (4)
where .


Fig.3  Conversion of the phase angle
from
w into f



     In the next, in order that the bottom of the cardioid is reformed into a heart curve with a corner having the desired angle (as seen in Fig.2), we converse the phase angle w of the cardioid into the newly defined phase angle f of the heart curve linearly as shown in Fig.3.      A conversion equation which satisfies the above mention may be given as
       .                       (5)
     If we substitute Eq.(4) into Eq.(5), the conversion equation from z to f is obtained as
       .                       (6)

     The orthogonal coordinate expression of the heart curve may be written as the following two equations;
       .                       (7)
       ,                       (8)
where b indicates compression reate in the length direction.      When this rate b does not exist, a stretched heart curve may appear.

     By calculating Eqs.(2), (3), (6), (7) and (8), the (x, y) coordinate data of the heart curve are obtained.      Examples of such obtained curves in the case of a=1 are shown in Figs.4 to 8 where a decides only the size and does not relate to the shape.

Fig.4a  =30°, b=20%
Fig.4b  =30°, b=23%
Fig.5a  =45°, b=25%

Fig.5b  =45°, b=30%
Fig.5c  =45°, b=35%
Fig.6a  =60°, b=35%
Fig.6b  =60°, b=40%

Fig.6c  =60°, b=45%
Fig.7  =90°, b=50%
Fig.8  =120°, b=80%

     When the above figures are painted, these are shown in the followings.





     In purpose to calculate the numerical coordinates data of a single heart curve by Eqs.(2), (3), (6), (7) and (8), a C++ program is given by C++_program1.
     By executing the C++ program, a text file named "heart_curve_a.txt" including the calculated data is produced.      Each interval of these data is devided by 'comma'.      After moving these calculated data into an excel file, we obtain a heart curve with the use of a graph wizard attached on the excel file.


     3.  Method 2


Fig.9  Conversion of the phase angle from t to f

     In this section, we tried to make a corner on the bottom of the cardioid by a nonlinear conversion of the phase angle.      Then, we converse the phase angle t of a cardioid into the phase angle f of a heart curve as shown in Fig.9.      As a conversion relation, we adopt the following equation using the square root function, which satisfies the characteristics given in Fig.9 sufficiently.
       ,                       (9)
where b is the positive real number.    b may be regarded as a strength of the conversion.      It has to be taken in account that f has not periodicity and is applied only in the range of as shown in Fig.9.
     Thus, we can make a corner on the bottom of the cardioid and bring it into the shape of a heart curve.      Moreover, in order to obtain the more beautiful shape of a heart curve, both of another coefficient c expressing the strength of the conversion and a compression coefficient d in the length direction are included in the following conversion equation to the (x, y) coordinates.
       .                       (10)
       .                       (11)

     By calculating Eqs.(2), (9), (10) and (11), the (x, y) coordinate data of the heart curve are obtained.      Examples of such obtained curves in the case of a=1 are shown in Figs.10 to 30 where a decides only the size and does not relate to the shape.

Fig.10a  b=1, c=0.3, d=1
Fig.10b  b=1, c=0.4, d=1
Fig.10c  b=1, c=0.4, d=1.1
Fig.11  b=1.2, c=0.6, d=1.2

Fig.12a  b=1.5, c=0.5, d=1
Fig.12b  b=1.5, c=0.6, d=1.1
Fig.12c  b=1.5, c=0.7, d=1
Fig.12d  b=1.5, c=0.7, d=1.5

Fig.13  b=1.8, c=0.3, d=0.7
Fig.14  b=1.8, c=0.3, d=1
Fig.15  b=1.8, c=0.5, d=1
Fig.16  b=1.8, c=0.7, d=1

Fig.17  b=1.8, c=0.7, d=1.2
Fig.18  b=1.8, c=0.7, d=1.5
Fig.19  b=2, c=0.3, d=0.7
Fig.20  b=2, c=0.3, d=1

Fig.21  b=2, c=0.5, d=1
Fig.22  b=2, c=0.7, d=1
Fig.23  b=2, c=0.7, d=1.2
Fig.24  b=2, c=0.7, d=1.4

Fig.25  b=2.2, c=0.3, d=0.7
Fig.26  b=2.2, c=0.5, d=1
Fig.27  b=2.2, c=0.7, d=1
Fig.28  b=2.2, c=0.7, d=1.1

Fig.29  b=2.5, c=0.78, d=1
Fig.30  b=2.5, c=0.78, d=1.2

     When the above figures are painted, these are shown in the followings.





     In purpose to calculate the numerical coordinates data of a single heart curve by Eqs.(2), (9), (10) and (11), a C++ program is given by C++_program2.
     By executing the C++ program, a text file named "heart_curve_b.txt" including the calculated data is produced.      Each interval of these data is devided by 'comma'.      After moving these calculated data into an excel file, we obtain heart a curve with the use of a graph wizard attached on the excel file.



_ returning to the page which opened just before with 'return' of browser _

or

_ returning to the HOME with the following button _


HOME

updated: 2009.02.16, edited by N. Yamamoto