给定的线,找到线的交点并检测形状:三角形,矩形和正方形

时间:2018-12-19 20:26:03

标签: assembly x86 masm irvine32

我正在研究“几何形状”项目(使用汇编语言)。我有一个文本文件,其中包含在某些点相交的线的坐标。通过这些交点,我应该识别出它是矩形,正方形还是三角形的形状,并在这个坐标文件中打印出矩形的数量,三角形的数量和正方形的数量。

对于三角形:我应该有3个交点 对于矩形和正方形:我应该有4个相交,然后我应该检查距离是否是4边的长度相等,所以它的正方形是矩形

我将文件数据存储在一个名为line的结构数组中,并包含4个变量x1,y1,x2,y2

现在我已经用正确的数据填充了结构

我自己的主要问题是计算线之间的交点 我该怎么做才能解决这个问题? 我需要将其编码

;;;;;;;;;;; DECLARING STRUCT ;;;;;;;;;;
line    struct 
x1      byte   ?
y1      byte   ?
x2     byte   ?
y2     byte   ?
line    ends
    // that's the function for storing tha numbers in an array of struct 
    // the array final deals with the part of code that I read from the file 
    //   with and contain the values but reversed so when i fill my array of 
    // type line I reverse the array final
    Store PROC
 mov  ebx, offset final
 add ebx,count1
 mov  edx, offset array_of_lines


 mov  ecx,10
 l_struct:
        mov     al, [ebx]
        mov     (line ptr [edx]).x1 , al
        dec     ebx
        mov     al, [ebx]
        mov     (line ptr [edx]).y1 , al
        dec     ebx
        mov    al, [ebx]
        mov     (line ptr [edx]).x2 , al
        dec     ebx
        mov    al, [ebx]
        mov     (line ptr [edx]).y2 , al
        dec     ebx
        add     edx, sizeof line
 loop l_struct

那是我得到的文本文件,它知道正方形和三角形中的糊状矩形

20 20 30 50 
10 10 50 50 
10 10 30 50
20 20 40 20
40 20 30 50
40 20 40 60
40 60 100 60
100 50 105 50
100 60 100 20
100 20 40 20
*

现在,我需要知道一种简单的方法来找到交叉点并处理所有情况..

0 个答案:

没有答案