亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? snaxel.c

?? snake算法
?? C
字號:
/****************************************************************************
 File Name  : snaxel.c
 Purpose    : provide basic routines for manipulation of snaxel angle
              and energy
 Release    : Version 1.0
 Date	    : Aug 31,1995

GSNAKE API is jointly developed by the Information Technology Institute (ITI), Singapore, and the School of Applied Science, Nanyang Technological
University (NTU), Singapore. 

These software programs are available to the user without any license or royalty fees. Permission is hereby granted to use, copy, modify, and distribute this software and its documentation for any purpose. ITI and NTU gives no warranty, express, implied, or statuary for the software and/or documentation provided, including, without limitation, waranty of merchantibility and warranty of fitness for a particular purpose. The software provided hereunder is on an "as is"  basis, and ITI and NTU has no obligation to provide maintenance, support, updates, enhancements, or modifications.

GSNAKE API is available for any UNIX compatible system. User feedback, bugs, or software and manual suggestions should be sent via electronic mail to one of the following, who may or may not act on them as he/she desires :

		asschan@ntu.ac.sg
		kflai@iti.gov.sg
***************************************************************************/

#include "gsnake.h"
#include "xwindow.h"
#include "random.h"

SNAXEL::SNAXEL()
{
	next = NULL;
	prev = NULL;
	row = col = alpha = beta = lambda = Eint = Eext = Esnaxel = 0 ;
}

/*
 * get the mean position (Eint = 0) for a point on a snake
 */
void SNAXEL::meanPosition( SNAKEMODE mode,      /* open / closed snake */
                           double cg_row,       /* center of gravity */
                           double cg_col,
                           SNAXEL *head,        /* head of snake */
                           SNAXEL *tail,        /* tail of snake */
                           double *meanrow,     /* mean position */
                           double *meancol)
{
        SNAXEL *Prev = getPrev(mode, tail);
        SNAXEL *Next = getNext(mode, head);

        /* compute mean position */
        *meanrow = getAlpha() * ( Prev->getRow() - cg_row  ) +
               getBeta()  * ( Next->getRow() - cg_row  ) +  cg_row;
        *meancol = getAlpha() * ( Prev->getCol() - cg_col  ) +
               getBeta()  * ( Next->getCol() - cg_col  ) + cg_col;
}

/*
 * compute angle at current snaxel
 */
double SNAXEL::getNormalAng( SNAKEMODE mode,        /* opened / closed gsnake */
                         SNAXEL *head,          /* head of snake */
                         SNAXEL *tail )         /* tail of snake */
{
        double uv0_x, uv0_y;    /* unit vector */
        double uv1_x, uv1_y;    /* unit vector */
        double angle;

        if ( mode == _OPENED && prev == NULL )
                angle = ATAN2( (getCol() - next->getCol()),
                                  (getRow() - next->getRow()) );


        else if ( mode == _OPENED && next == NULL )
                angle = ATAN2( (getCol() - prev->getCol()),
                                  (getRow() - prev->getRow()) );

        else {
                getDirectionVec(           /* compute tangent vector */
                         mode, head, tail,
                         &uv0_x, &uv0_y, &uv1_x, &uv1_y);

                angle = ATAN2(     /* compute gradient */
                        (uv0_x + uv1_x),
                       -1*(uv0_y + uv1_y) );
        }

        return angle;
}



/*
 * compute tangent vector of snaxel
 */
void SNAXEL::getDirectionVec(
                SNAKEMODE mode,                 /* opened / closed gsnake */
                SNAXEL *head,                   /* head of snake */
                SNAXEL *tail,                   /* tail of snake */
                double *Uv0_x,double *Uv0_y,    /* unit vectors */
                double *Uv1_x,double *Uv1_y )
{
        double v0_x, v0_y, v1_x, v1_y;          /* directional vectors */
        double len_v0, len_v1;                  /* length of v0 and v1 */
        double m0, m1;                          /* scalar factor */

        SNAXEL *Next = getNext( mode, head);
        SNAXEL *Prev = getPrev( mode, tail);

        /* compute directional vector */
        v0_x = getCol() - Prev->getCol();
        v0_y = getRow() - Prev->getRow();
        v1_x = Next->getCol() - getCol();
        v1_y = Next->getRow() - getRow();

        /* compute vector length */
        len_v0 = hypot( v0_x, v0_y );
        len_v1 = hypot( v1_x, v1_y );

        /* compute unit vector */
        m0 = ((len_v0) ? 1.0/len_v0 : 0.0);
        m1 = ((len_v1) ? 1.0/len_v1 : 0.0);
        *Uv0_x = m0 * v0_x;
        *Uv0_y = m0 * v0_y;
        *Uv1_x = m1 * v1_x;
        *Uv1_y = m1 * v1_y;
}

/*
 * compute normal vector of current snaxel
 */
void SNAXEL::getNormalVec( SNAKEMODE mode,         /* opened / closed gsnake */
                        SNAXEL *head,           /* head of snake */
                        SNAXEL *tail,           /* tail of snake */
                        double *nv_x,           /* normal vectors */
                        double *nv_y )
{
        double uv0_x, uv0_y;    /* unit vector */
        double uv1_x, uv1_y;    /* unit vector */
        double dx, dy;
        double len ;

 
        getDirectionVec(           /* compute tangent vector */
                         mode, head, tail,
                         &uv0_x, &uv0_y, &uv1_x, &uv1_y);
        dx = uv0_x + uv1_x;
        dy = uv0_y + uv1_y;
        
        /* use infinity norm */
        len = MAX(fabs(dx), fabs(dy));

        if ( len < 0.001 ) {
                double angle = rand_uniform( 0.0, 2*M_PI );
                dx = cos( angle );
                dy = sin( angle );
                len = MAX( fabs(dx), fabs(dy) );
        }

 
        /* rotate tangent vectors by 90 degrees */
        *nv_x = -dy/len;
        *nv_y = dx/len;
}

/*
 * get next snaxel
 */
SNAXEL *SNAXEL::getNext( SNAKEMODE mode,        /* opened / closed gsnake */
                         SNAXEL *head )         /* head of snake */
{
        SNAXEL *Next;

        if ( mode == _OPENED ) { /* if opened snake */
                Next = ( next == NULL ) ?
                getPrev()->getPrev() :
                getNext();
        }
        else { /* if closed snake */
                Next = ( next == NULL) ?
                head : getNext();
        }

        return Next;
}

/*
 * get prev snaxel
 */
SNAXEL *SNAXEL::getPrev( SNAKEMODE mode,        /* opened / closed gsnake */
                         SNAXEL *tail )         /* tail of snake */
{
        SNAXEL *Prev;

        if ( mode == _OPENED ) { /* if opened snake */
                Prev = ( prev == NULL ) ?
                getNext()->getNext() :
                getPrev();
        }
        else { /* if closed snake */
                Prev = ( prev == NULL ) ?
                tail : getPrev();
        }

        return Prev;
}


/* Comments : Point offsets are necessary due to different expansion levels.
              Image offset is fixed but the point offset depends on level 
              This offset will be added within the X windows move.*/

void SNAXEL::show( IMAGE *img,                     /* ref. image */
                   short Old_Row, short Old_Col, /* Destination location */
                   int pt_Xoffset, int pt_Yoffset) /* Point offsets  */
{	

	xwin_MovePoint(img->ximg, Old_Col, Old_Row, 
			ROUNDOFF(col), ROUNDOFF(row),
			pt_Xoffset, pt_Yoffset);
	
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区精华| 亚洲精品乱码久久久久久| 亚洲免费观看在线视频| 国内精品第一页| 欧美一级高清大全免费观看| 一区二区三区不卡在线观看 | 91福利在线观看| 亚洲黄色免费电影| 91蝌蚪porny| 亚洲人被黑人高潮完整版| 国产aⅴ精品一区二区三区色成熟| 国产视频一区二区在线| 成人美女视频在线观看18| 日韩码欧中文字| 91精品国产综合久久精品app| 蜜桃久久精品一区二区| 中文字幕+乱码+中文字幕一区| 91网站在线观看视频| 91丝袜国产在线播放| 午夜婷婷国产麻豆精品| 国产欧美日韩不卡免费| 欧美人与禽zozo性伦| 粗大黑人巨茎大战欧美成人| 午夜婷婷国产麻豆精品| 一本色道久久综合精品竹菊| 一区二区国产视频| 久久久国产一区二区三区四区小说| 97精品国产露脸对白| 国产不卡视频一区二区三区| 五月天欧美精品| 1000精品久久久久久久久| 日本一区免费视频| 欧美α欧美αv大片| 色菇凉天天综合网| 91性感美女视频| 粉嫩一区二区三区性色av| 美国毛片一区二区三区| 亚洲a一区二区| 亚洲高清在线精品| 午夜一区二区三区在线观看| 亚洲欧美激情在线| www成人在线观看| 久久久久一区二区三区四区| 久久久综合精品| 久久精品人人做人人爽人人| 亚洲成在线观看| 亚洲国产精品久久艾草纯爱| 国产精品成人一区二区三区夜夜夜| 色噜噜狠狠一区二区三区果冻| 国产精品一区二区三区四区| 麻豆91在线观看| 蜜桃视频在线观看一区二区| 五月天久久比比资源色| 亚洲综合一区二区| 日日嗨av一区二区三区四区| 裸体歌舞表演一区二区| 成人三级在线视频| 欧美视频中文一区二区三区在线观看| 欧美理论电影在线| 久久久蜜桃精品| 亚洲一区在线观看视频| 老司机午夜精品99久久| 成人动漫视频在线| 欧美精品久久99久久在免费线| 精品日韩在线观看| 中文字幕中文字幕一区| 午夜影院在线观看欧美| k8久久久一区二区三区| 欧美一区二区三区在线看| 国产精品国产精品国产专区不蜜| 高清不卡一二三区| 日韩一二在线观看| 艳妇臀荡乳欲伦亚洲一区| 狠狠色丁香九九婷婷综合五月| 欧美日韩免费电影| 亚洲欧美视频在线观看视频| 精品一区二区三区视频在线观看| 欧美在线|欧美| 一区二区三区蜜桃| 国产 欧美在线| 欧美成va人片在线观看| 亚洲不卡av一区二区三区| 97久久超碰国产精品电影| 国产日产精品1区| 精品一区二区三区免费观看| 在线播放欧美女士性生活| 一区二区三区四区高清精品免费观看 | 日韩成人一级大片| 欧美日韩综合在线免费观看| 一区二区三区四区不卡在线| 成人午夜视频福利| 国产精品国产精品国产专区不蜜 | 色婷婷一区二区三区四区| ...xxx性欧美| 在线看不卡av| 欧美a级理论片| 日韩欧美国产一区二区三区| 麻豆精品在线看| 精品国产123| www.成人在线| 亚洲国产成人tv| 欧美精品一区二区三区在线| 精品一区在线看| 亚洲精品视频自拍| 欧美高清激情brazzers| 国产美女精品人人做人人爽| 亚洲国产成人自拍| 欧洲一区在线电影| 精品影视av免费| 亚洲日本成人在线观看| 欧美日韩一区二区在线观看 | 欧美久久一区二区| 国产成人av电影在线播放| 亚洲精品大片www| 久久综合久久综合亚洲| 色婷婷综合久久久中文一区二区| 婷婷综合另类小说色区| 国产农村妇女精品| 7777女厕盗摄久久久| 91在线视频播放地址| 国产一区二区三区在线看麻豆| 亚洲图片另类小说| 欧美韩日一区二区三区四区| 7799精品视频| 在线观看日韩国产| 国产成人综合亚洲91猫咪| 日韩国产精品久久久久久亚洲| 国产精品久久久久影院| 久久精品亚洲乱码伦伦中文| 日韩欧美的一区二区| 欧美精品aⅴ在线视频| 91麻豆免费观看| 99久久免费视频.com| 国产麻豆精品在线观看| 老司机免费视频一区二区| 一区二区三区视频在线观看| 中文字幕高清一区| 国产精品天干天干在观线| 国产亚洲va综合人人澡精品| 国产清纯白嫩初高生在线观看91 | 欧美精品一区二区三区在线| 欧美一区二区三区视频| 56国语精品自产拍在线观看| 欧美性欧美巨大黑白大战| 在线日韩一区二区| 欧美精品日日鲁夜夜添| 91精品国产色综合久久| 精品国产三级电影在线观看| 久久精品亚洲乱码伦伦中文| 国产欧美日本一区视频| 中文字幕佐山爱一区二区免费| 亚洲天堂免费看| 亚洲午夜视频在线| 国内精品国产三级国产a久久| 国产成人三级在线观看| 在线观看不卡视频| 欧美一级精品在线| 亚洲欧洲在线观看av| 五月婷婷久久丁香| 国产一区二区伦理| 91激情在线视频| 日韩一区二区三区免费看 | 91丨porny丨中文| 日韩美女主播在线视频一区二区三区| 久久精品免费在线观看| 午夜久久久久久电影| a在线欧美一区| 久久久久久久精| 五月婷婷另类国产| 99精品桃花视频在线观看| 欧美一级日韩免费不卡| 亚洲激情校园春色| 99久久久久久99| 国产亚洲人成网站| 日本特黄久久久高潮| 欧美亚洲国产一区在线观看网站| 精品国产乱码91久久久久久网站| 天堂在线亚洲视频| 91福利视频网站| 一区二区三区在线视频免费观看 | 成人免费视频一区| 国产欧美日韩在线视频| 精品一区二区影视| 欧美一级二级在线观看| 日本sm残虐另类| 欧美美女喷水视频| 天堂va蜜桃一区二区三区 | 国产亚洲美州欧州综合国| 美女脱光内衣内裤视频久久网站 | 亚洲尤物视频在线| 欧美日韩国产美| 麻豆精品视频在线观看| 国产米奇在线777精品观看| 欧美一卡二卡三卡四卡| 亚洲午夜视频在线观看| 欧美在线观看视频一区二区三区| 亚洲精品久久久蜜桃| 91女人视频在线观看| 亚洲猫色日本管| 欧美精品乱码久久久久久|