📄 bezr1.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 */
/* */
/* BEZR1.c 1.9 */
/* */
/* COMPONENT */
/* */
/* All */
/* */
/* DESCRIPTION */
/* */
/* This file contains the PaintBezier 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"
/* Function PaintBezier fills the interior of an area bounded by
a series of Bezier curves. */
void PaintBezier(point *PTS, int PTCNT)
{
#define coordAbs 0
#define shapeComplex 2
void mwBezier(point *PTS, int PTCNT, point *BEZPTS);
void FillPolygon(point *pointsparm, unsigned int npointsparm, int modeparm, int shape);
void GrafFree(void *freePtr);
int mwBezCount(point *PTS, int PTCNT);
point *GrafAlloc(int memSize);
int numBzPts; /* number of interpolation points */
point *ptrBzPts; /* pointer for interpolated point array */
if (grafPort.pnLevel < 0) return; /* is pnLevel visible? */
/* Compute the number of points for approximation */
numBzPts = mwBezCount(PTS, PTCNT);
/* Allocate memory to point approximation array */
ptrBzPts = (point *) GrafAlloc((numBzPts << 2));
/* Compute the bezier approximation and draw */
if (ptrBzPts != NULL)
{
mwBezier(PTS, PTCNT, ptrBzPts); ;
/* Fill the bezier curve(s) */
globalLevel--;
FillPolygon(ptrBzPts, numBzPts, coordAbs, shapeComplex);
globalLevel++;
GrafFree(ptrBzPts); /* Free the point array */
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -