⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inon5.c

📁 nucleus 文件系统,内核和彩色图形系统,在小系统上非常好用
💻 C
字号:
/*************************************************************************/
/*                                                                       */
/*         Copyright (c) 1997 - 1999 Accelerated Technology, Inc.        */
/*                                                                       */
/* PROPRIETARY RIGHTS of Accelerated Technology are involved in the      */
/* subject matter of this material.  All manufacturing, reproduction,    */
/* use, and sales rights pertaining to this subject matter are governed  */
/* by the license agreement.  The recipient of this software implicitly  */
/* accepts the terms of the license.                                     */
/*                                                                       */
/*************************************************************************/

/*************************************************************************/
/*                                                                       */
/* FILE NAME                                            VERSION          */
/*                                                                       */
/*      INON5.c                                          1.9             */
/*                                                                       */
/* COMPONENT                                                             */
/*                                                                       */
/*      All                                                              */
/*                                                                       */
/* DESCRIPTION                                                           */
/*                                                                       */
/*      This file contains the PtOnLine function.                        */
/*                                                                       */
/* AUTHOR                                                                */
/*                                                                       */
/*      Robert G. Burrill, Accelerated Technology, Inc.                  */
/*                                                                       */
/* DATA STRUCTURES                                                       */
/*                                                                       */
/*      None                                                             */
/*                                                                       */
/* FUNCTIONS                                                             */
/*                                                                       */
/*      None                                                             */
/*                                                                       */
/* DEPENDENCIES                                                          */
/*                                                                       */
/*      None                                                             */
/*                                                                       */
/* HISTORY                                                               */
/*                                                                       */
/*         NAME            DATE                    REMARKS               */
/*                                                                       */
/*                                                                       */
/*************************************************************************/

#include "meta_wnd.h"
#include "metconst.h"    /* MetaWINDOW Constant & Stucture Definitions */
#include "metports.h"    /* MetaWINDOW Port & Bitmap Definitions */
#include "grafdata.h"
#include "metmacs3.h"
void mwLIT(void);


/* Function PtOnLine determines whether the specified point, fpTESTPT, is
on the line segment between PT1 & PT2, and returns TRUE if it is or FALSE
if it is not.

PtOnLine treats the line as a rect structure. This allows the standard PtInRect
function set to do trivial rejection and handle the setup and exit. Notice the
trivial clip check is different for lines than the other ptin/on code,
because of the quadrant correction stuff. */

int PtOnLine(point *fpTESTPT, point *PT1, point *PT2, int sizX, int sizY)
{
	short PtInRect(point *fpTESTPT, rect *argRect, int sizX, int sizY);
	void VectSetup(void);
	void VectRestore(void);
	void MoveTo(short argX, short argY);
	void LineTo(short valX, short valY);
	
	short penX;	/* place to stash current pen location */
	short penY;

	linePattIDV = (long) mwLIT;	/* smart link non-dashed square lines */
	PtRslt = PtInRect(fpTESTPT, 0, sizX, sizY);
	VectSetup();
	penX = grafPort.pnLoc.X;	/* preserve current pen location */
	penY = grafPort.pnLoc.Y;
	MoveTo(PT1->X, PT1->Y);	/* draw it */
	LineTo(PT2->X, PT2->Y);
	MoveTo(penX, penY);	/* restore pen location */
	VectRestore();

	return(PtRslt);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -