本文目錄一覽:
- 1、庚澈一起參加的節目視頻地址
- 2、繼電器電子元器件的代號
- 3、怎么用C語言做二維 三維 動畫 窗口的程序?
- 4、MMsegmentation教程 6: 自定義運行設定
- 5、請幫忙提供碳(煤炭)的原子結構圖,感謝!
庚澈一起參加的節目視頻地址
我有好幾十個他們的視頻
都下載下來了
你要是要的話我就給個郵箱啊
都好似很不錯的
很粉紅的
(*^__^*) 嘻嘻……
這些是在線鏈接的
親
我也是庚澈迷哦
好玩啊
這個我看了超感動……啊……庚澈啊……
繼續走輕松路線 嘿嘿 走過路過 不要錯過哦
14秒時破澈的眼神哦……
這是對打……
日本武道館FM
1
2
3
額 忘了,FM幕后花絮
那個說要一起用券的視頻
雨傘比較清晰
強大的希庚燈牌
再貼個《溺水的石頭愛情的花》
最近看這文,真的很喜歡,也推薦大家可以去看看
整理幾個lily柑親做的視頻,偶真的非常喜歡
《秘密》(完全出名了)
《破曉》
《輪回四世》
《溺水的石頭愛情的花》
《再見往事》
飯自制PV 《好久不見》
很舒服
4分25秒時……兩只小孩背對背,你靠過來我靠過去,真像小朋友啊……大愛啊……
幸福
撐傘
幫忙擰水蓋的
剛發現的一個讓我大愛的視頻
最后sj發表獲獎感言時,澈澈又54小隊憋屈的眼神兒把話筒遞給了庚
眼睛緊緊的盯著庚,而且怕庚說不好,自己說一句讓庚重復一句
兩人的幸福生活
澈說庚像雕塑,狂贊庚啊
日本FM澈說庚摸他的那段
韓庚中國行
澈回歸,庚笑了(可是這視頻我卻看的難受。。)
庚講戴面具
(先看看庚帶面具那段時光看一次我就BS泡菜國一次)
庚講戴面具時的事
幾個泰國的
彈鋼琴近拍
潑水
人氣歌謠唱完就拉著走
庚不能上臺,澈喊“韓庚,我想你”(音頻)
世界杯
亞洲音樂節對唱(望?)
輪回四世》
庚CY采訪提澈(這是我覺得很溫馨的一個視頻,上次那個誰真不知道怎么想的,如果和上次那親一樣的想法那也別看了)
13只唯一一次全體中國行TVB采訪
情書
表白部分
牽手
整場
上
下
夜心 又習慣性的提
拿紙屑
推臉
庚澈 豆花
接機 (前面的 額。。。。。)
富川電影節(額 這主要是有點看庚的迷糊)
額 MS就是那個澈看出庚跳錯舞步的
二輯采訪某兩人的小動作
序
1上
1下
2
3
- - 沒找到4
5
6
- - 也米7
8
9
10
11
12
13
14
15
16
17
18上
18下
結局
庚澈粉紅總結事件:
澈口述滑雪場
耳語,不過更像BOBO
人氣歌謠對唱
寒流沖擊波庚提澈合集
深深打破,某人又習慣性的提LG
校服拍攝(某人最后的嬌撒的啊。。。。。)
校服拍攝
周年party
喝酒
悄悄話,捶背。。
愛不分
姻緣(聽說澈很喜歡這歌)
記得
卡通版
虎東大叔婚禮
天方地軸
瓦也第一次看
不曉得是啥節目
澈穿大紅唐裝
starking(真聽話)
(真的非常美)
KTR連線澈
吃桔子~ 太有默契了
亞洲音樂節打鬧~
韓國演唱會
讓所有人尖叫的抱
抱抱
出席電影首映
最經典的游樂園
臺韓演唱會問候
倒霉兔子
娛樂@亞洲-SJ專訪庚澈剪輯
夜心 萬萬 吻戲
背后被剪
1
2
迷你演唱會
MKMF 大賞
人氣電臺
庚第一次上澈電臺
泰國演唱會
臺階
向日葵
打情罵俏
鋼琴
勾肩搭背
毛巾
毛巾加搭背
悄悄話
庚澈的傷心回憶(我很喜歡的,ms是看的第一個庚澈視頻)
如果的事
悲傷戀歌
上
下
是非題 (很喜歡這歌)
讓很多人看了心痛的28秒
庚的
澈的
崔宏萬和他的朋友們
人氣歌謠上被庚拖下臺的澈
見“公婆”
二輯 真心話
KTR
看搞笑演唱會
逛街
打情罵俏
庚回韓國 澈幫提行李
澈的惟一一次中國行
機場
搜狐采訪
DC熱舞
繼電器電子元器件的代號
電子元件符號 1 繼電器 K JxXDFRZw- 2 電流繼電器 KA LJ^\WQ~u( Si 3 負序電流繼電器 KAN
FLJHObMDoF,c\ 4 零序電流繼電器 KAZ LLJ*M0M 5 電壓繼電器 KV YJ@9{To9nf 6
正序電壓繼電器 KVP ZYJ.u]l'XO 7 負序電壓繼電器 KVN FYJlpcZ )G 8 零序電壓繼電器 KVZ
LYJ.Y"y,$,vt 9 時間繼電器 KT SJ~(Unz},T 10 功率繼電器 KP GJEOVaYdr_ 11
差動繼電器 KD CJ rgfT-7d 12 信號繼電器 KS XJSzBs_;3 13 信號沖擊繼電器 KAI
XMJqLIal13K 14 繼電器 KC ZJ4sz"# 15 熱繼電器 KR RJ`0ZwLx;
16 阻抗繼電器 KI ZKJ FZv*:^ 17 溫度繼電器 KTP WJhKWbU !Z 18 瓦斯繼電器 KG
WSJ'vCS U^T, 19 合閘繼電器 KCR或KON HJc2hA/GfDa 20 跳閘繼電器 KTR TJY]b0?5c~2
21 合閘 繼電器 KCP HWJ#t3As4` 22 跳閘 繼電器 KTP TWJuNTGv915H 23 電源監視繼電器
KVS JJbD0aN 24 壓力監視繼電器 KVP YJJ`PYle 25 電壓 繼電器 KVM
YZJ!$@KwI 26 事故信號 繼電器 KCA SXJHDTo8$tH 27 繼電保護跳閘出口繼電器 KOU
BCJ'CBU'4Q 28 手動合閘繼電器 KCRM SHJGaa(rM^D 29 手動跳閘繼電器 KTPM
STJueorm5 30 加速繼電器 KAC或KCL JSJksF~K8yd 31 復歸繼電器 KPE
FJ{Upy)b 32 閉鎖繼電器 KLA或KCB BSJx-H}Cx(2 33 同期檢查繼電器 KSY
TJJ5bQGIvl 34 自動準同期裝置 ASA ZZQf .oLEdZ 35 自動重合閘裝置 ARE ZCJMq qks
36 自動勵磁調節裝置 AVR或AAVR ZTLB{nqhsV 37 備用電源自動投入裝置 AATS或RSAD BZT`krL?Pbh
38 按扭 SB AN0O* \H[ 39 合閘按扭 SBC HA+U}7-mnJ8 40 跳閘按扭 SBT
TAE!)FgxL} 41 復歸按扭 SBre或SBR FA+J~$|rv 42 試驗按扭 SBte YAnE gG3nU
43 緊急停機按扭 SBes JTAq\uhV$]Ew 44 起動按扭 SBst QACd^0w@L?e 45 自保持按扭 SBhs
BA {H4$P 46 停止按扭 SBss hn"3Y{[ 47 控制開關 SAC KKoygD%tQ
48 轉換開關 SAH或SA ZKxM`)xt? 49 測量轉換開關 SAM CKcNYA@v#` 50
同期轉換開關 SAS TKP;)q]=Flf 51 自動同期轉換開關 2SASC DTKgm8*D_z0U 52 手動同期轉換開關
1SASC STKA)u/F 53 自同期轉換開關 SSA2 ZTKaHrjUJio 54 自動開關 QA
l"$8* 55 刀開關 QK或SN DK: _PQ 56 熔斷器 FU RD oR'[ Vb( 57 快速熔斷器
FUhs RDSDv2RXncA 58 閉鎖開關 SAL BK`@8lT 59 信號燈 HL XDd~ Y{qD%
60 光字牌 HL或HP GPNQ8"GS 61 警鈴 HAB或HA JL[UlXp 62 合閘接觸器 KMC
HCh|x)\Xn8 63 接觸器 KM C?%VG5h2Hv 64 合閘線圈 Yon或LC HQ',)P7M 65
跳閘線圈 Yoff或LT TQv_kOOj 66 插座 XS S4quCrTWV 67 插頭 XP XaR9 nO4 68
端子排 XT "s[32H. 69 測試端子 XE , ^#)N? 70 連接片 XB LPl2*$Nw1
71 蓄電池 GB XDCOXPM"sy 72 壓力變送器 BP YBb q!e.} 73 溫度變送器 BT WDBT
8Q!Fsp2 74 電鐘 PT y]?D# 75 電流表 PA /`K~gY% 76 電壓表 PV
[+'It9O 77 電度表 PJ |~Zl6 W7q 78 有功功率表 PPA 9KKU}qng 79 無功功率表
PPR -azx3 80 同期表 S .Tk.y-Cc 81 頻率表 PF J' U3o6 82 電容器
C 'NZ/O jj 83 滅磁電阻 RFS或Rfd RmcIU@uhL 84 分流器 RW (?Kw@ 85 熱電阻
RT sN@4btC 86 電位器 RP J lJ9 A|A 87 電感(電抗)線圈 L .tj,k~%a 88 電流互感器
TA CT或LH$)4xZR 89 電壓互感器 TV PT或YHwcC, x 10KV電壓互感器 TV
SYH|G5j=X 35KV電壓互感器 TV UYHvJkyK)H 110KV電壓互感器 TV YYHzUD_k=V2
90 斷路器 QF DLv3YJ \^~ 91 隔離開關 QS Ge ,PL| 92 電力變壓器 TM
B9n;\Id3b D 93 同步發電機 GS TF/)hCy[3L 94 交流電動機 MA JD~wx). @n 95 直流電動機 MD ZD.
6=? 96 電壓互感器二次回路小母線 g:5K=:\Vn 97 同期電壓小母線(待并) WST或WVB
TQMa,TQMbAVEFZob_ 98 同期電壓小母線(運行) WOS`或WVBn TQM`a,TQM`bOT/Xmd/T 99
準同期合閘小母線 1WSC,2WSC,3WSC9Q)y+..{ 1WPO,2WPO,3WPO
1THM,2THM,3THMI/Ts=A 100 控制電源小母線 +WC,-WC +KM,-KMA(SM$
101 信號電源小母線 +WS,-WS +XM,-XMlv2x.T- 102 合閘電源小母線 +WON,-WON
+HM,-HM1(w+ IOj 103 事故信號小母線 WFA SYMOfG+n 104 零序電壓小母線 WVBz
7+/ql
怎么用C語言做二維 三維 動畫 窗口的程序?
我有相關的資料(原版英文書), 但無法傳遞給你!!! 給你個實例程序:(太長,程序沒發完)
/*
GRAPHICS DEMO FOR TURBO C 2.0
Copyright (c) 1987,88 Borland International. All rights reserved.
From the command line, use:
tcc bgidemo graphics.lib
*/
#ifdef __TINY__
#error BGIDEMO will not run in the tiny model.
#endif
#include dos.h
#include math.h
#include conio.h
#include stdio.h
#include stdlib.h
#include stdarg.h
#include graphics.h
#define ESC 0x1b /* Define the escape key */
#define TRUE 1 /* Define some handy constants */
#define FALSE 0 /* Define some handy constants */
#define PI 3.14159 /* Define a value for PI */
#define ON 1 /* Define some handy constants */
#define OFF 0 /* Define some handy constants */
char *Fonts[] = {
"DefaultFont", "TriplexFont", "SmallFont",
"SansSerifFont", "GothicFont"
};
char *LineStyles[] = {
"SolidLn", "DottedLn", "CenterLn", "DashedLn", "UserBitLn"
};
char *FillStyles[] = {
"EmptyFill", "SolidFill", "LineFill", "LtSlashFill",
"SlashFill", "BkSlashFill", "LtBkSlashFill", "HatchFill",
"XHatchFill", "InterleaveFill", "WideDotFill", "CloseDotFill"
};
char *TextDirect[] = {
"HorizDir", "VertDir"
};
char *HorizJust[] = {
"LeftText", "CenterText", "RightText"
};
char *VertJust[] = {
"BottomText", "CenterText", "TopText"
};
struct PTS {
int x, y;
}; /* Structure to hold vertex points */
int GraphDriver; /* The Graphics device driver */
int GraphMode; /* The Graphics mode value */
double AspectRatio; /* Aspect ratio of a pixel on the screen*/
int MaxX, MaxY; /* The maximum resolution of the screen */
int MaxColors; /* The maximum # of colors available */
int ErrorCode; /* Reports any graphics errors */
struct palettetype palette; /* Used to read palette info */
/* */
/* Function prototypes */
/* */
void Initialize(void);
void ReportStatus(void);
void TextDump(void);
void Bar3DDemo(void);
void RandomBars(void);
void TextDemo(void);
void ColorDemo(void);
void ArcDemo(void);
void CircleDemo(void);
void PieDemo(void);
void BarDemo(void);
void LineRelDemo(void);
void PutPixelDemo(void);
void PutImageDemo(void);
void LineToDemo(void);
void LineStyleDemo(void);
void CRTModeDemo(void);
void UserLineStyleDemo(void);
void FillStyleDemo(void);
void FillPatternDemo(void);
void PaletteDemo(void);
void PolyDemo(void);
void SayGoodbye(void);
void Pause(void);
void MainWindow(char *header);
void StatusLine(char *msg);
void DrawBorder(void);
void changetextstyle(int font, int direction, int charsize);
int gprintf(int *xloc, int *yloc, char *fmt, ... );
/* */
/* Begin main function */
/* */
int main()
{
Initialize(); /* Set system into Graphics mode */
ReportStatus(); /* Report results of the initialization */
ColorDemo(); /* Begin actual demonstration */
if( GraphDriver==EGA || GraphDriver==EGALO || GraphDriver==VGA )
PaletteDemo();
PutPixelDemo();
PutImageDemo();
Bar3DDemo();
BarDemo();
RandomBars();
ArcDemo();
CircleDemo();
PieDemo();
LineRelDemo();
LineToDemo();
LineStyleDemo();
UserLineStyleDemo();
TextDump();
TextDemo();
CRTModeDemo();
FillStyleDemo();
FillPatternDemo();
PolyDemo();
SayGoodbye(); /* Give user the closing screen */
closegraph(); /* Return the system to text mode */
return(0);
}
/* */
/* INITIALIZE: Initializes the graphics system and reports */
/* any errors which occured. */
/* */
void Initialize(void)
{
int xasp, yasp; /* Used to read the aspect ratio*/
GraphDriver = DETECT; /* Request auto-detection */
initgraph( GraphDriver, GraphMode, "" );
ErrorCode = graphresult(); /* Read result of initialization*/
if( ErrorCode != grOk ){ /* Error occured during init */
printf(" Graphics System Error: %s\n", grapherrormsg( ErrorCode ) );
exit( 1 );
}
getpalette( palette ); /* Read the palette from board */
MaxColors = getmaxcolor() + 1; /* Read maximum number of colors*/
MaxX = getmaxx();
MaxY = getmaxy(); /* Read size of screen */
getaspectratio( xasp, yasp ); /* read the hardware aspect */
AspectRatio = (double)xasp / (double)yasp; /* Get correction factor */
}
/* */
/* REPORTSTATUS: Report the current configuration of the system */
/* after the auto-detect initialization. */
/* */
void ReportStatus(void)
{
struct viewporttype viewinfo; /* Params for inquiry procedures*/
struct linesettingstype lineinfo;
struct fillsettingstype fillinfo;
struct textsettingstype textinfo;
struct palettetype palette;
char *driver, *mode; /* Strings for driver and mode */
int x, y;
getviewsettings( viewinfo );
getlinesettings( lineinfo );
getfillsettings( fillinfo );
gettextsettings( textinfo );
getpalette( palette );
x = 10;
y = 4;
MainWindow( "Status report after InitGraph" );
settextjustify( LEFT_TEXT, TOP_TEXT );
driver = getdrivername();
mode = getmodename(GraphMode); /* get current setting */
gprintf( x, y, "Graphics device : %-20s (%d)", driver, GraphDriver );
gprintf( x, y, "Graphics mode : %-20s (%d)", mode, GraphMode );
gprintf( x, y, "Screen resolution : ( 0, 0, %d, %d )", getmaxx(), getmaxy() );
gprintf( x, y, "Current view port : ( %d, %d, %d, %d )",
viewinfo.left, viewinfo.top, viewinfo.right, viewinfo.bottom );
gprintf( x, y, "Clipping : %s", viewinfo.clip ? "ON" : "OFF" );
gprintf( x, y, "Current position : ( %d, %d )", getx(), gety() );
gprintf( x, y, "Colors available : %d", MaxColors );
gprintf( x, y, "Current color : %d", getcolor() );
gprintf( x, y, "Line style : %s", LineStyles[ lineinfo.linestyle ] );
gprintf( x, y, "Line thickness : %d", lineinfo.thickness );
gprintf( x, y, "Current fill style : %s", FillStyles[ fillinfo.pattern ] );
gprintf( x, y, "Current fill color : %d", fillinfo.color );
gprintf( x, y, "Current font : %s", Fonts[ textinfo.font ] );
gprintf( x, y, "Text direction : %s", TextDirect[ textinfo.direction ] );
gprintf( x, y, "Character size : %d", textinfo.charsize );
gprintf( x, y, "Horizontal justify : %s", HorizJust[ textinfo.horiz ] );
gprintf( x, y, "Vertical justify : %s", VertJust[ textinfo.vert ] );
Pause(); /* Pause for user to read screen*/
}
/* */
/* TEXTDUMP: Display the all the characters in each of the */
/* available fonts. */
/* */
void TextDump()
{
static int CGASizes[] = {
1, 3, 7, 3, 3 };
static int NormSizes[] = {
1, 4, 7, 4, 4 };
char buffer[80];
int font, ch, wwidth, lwidth, size;
struct viewporttype vp;
for( font=0 ; font5 ; ++font ){ /* For each available font */
sprintf( buffer, "%s Character Set", Fonts[font] );
MainWindow( buffer ); /* Display fontname as banner */
getviewsettings( vp ); /* read current viewport */
settextjustify( LEFT_TEXT, TOP_TEXT );
moveto( 2, 3 );
buffer[1] = '\0'; /* Terminate string */
wwidth = vp.right - vp.left; /* Determine the window width */
lwidth = textwidth( "H" ); /* Get average letter width */
if( font == DEFAULT_FONT ){
changetextstyle( font, HORIZ_DIR, 1 );
ch = 0;
while( ch 256 ){ /* For each possible character */
buffer[0] = ch; /* Put character into a string */
outtext( buffer ); /* send string to screen */
if( (getx() + lwidth) wwidth )
moveto( 2, gety() + textheight("H") + 3 );
++ch; /* Goto the next character */
}
}
else{
size = (MaxY 200) ? CGASizes[font] : NormSizes[font];
changetextstyle( font, HORIZ_DIR, size );
ch = '!'; /* Begin at 1st printable */
while( ch 127 ){ /* For each printable character */
buffer[0] = ch; /* Put character into a string */
outtext( buffer ); /* send string to screen */
if( (lwidth+getx()) wwidth ) /* Are we still in window? */
moveto( 2, gety()+textheight("H")+3 );
++ch; /* Goto the next character */
}
}
Pause(); /* Pause until user acks */
} /* End of FONT loop */
}
/* */
/* BAR3DDEMO: Display a 3-D bar chart on the screen. */
/* */
void Bar3DDemo(void)
{
static int barheight[] = {
1, 3, 5, 4, 3, 2, 1, 5, 4, 2, 3 };
struct viewporttype vp;
int xstep, ystep;
int i, j, h, color, bheight;
char buffer[10];
MainWindow( "Bar 3-D / Rectangle Demonstration" );
h = 3 * textheight( "H" );
getviewsettings( vp );
settextjustify( CENTER_TEXT, TOP_TEXT );
changetextstyle( TRIPLEX_FONT, HORIZ_DIR, 4 );
outtextxy( MaxX/2, 6, "These are 3-D Bars" );
changetextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );
setviewport( vp.left+50, vp.top+40, vp.right-50, vp.bottom-10, 1 );
getviewsettings( vp );
line( h, h, h, vp.bottom-vp.top-h );
line( h, (vp.bottom-vp.top)-h, (vp.right-vp.left)-h, (vp.bottom-vp.top)-h );
xstep = ((vp.right-vp.left) - (2*h)) / 10;
ystep = ((vp.bottom-vp.top) - (2*h)) / 5;
j = (vp.bottom-vp.top) - h;
settextjustify( CENTER_TEXT, CENTER_TEXT );
for( i=0 ; i6 ; ++i ){
line( h/2, j, h, j );
itoa( i, buffer, 10 );
outtextxy( 0, j, buffer );
j -= ystep;
}
j = h;
settextjustify( CENTER_TEXT, TOP_TEXT );
for( i=0 ; i11 ; ++i ){
color = random( MaxColors );
setfillstyle( i+1, color );
line( j, (vp.bottom-vp.top)-h, j, (vp.bottom-vp.top-3)-(h/2) );
itoa( i, buffer, 10 );
outtextxy( j, (vp.bottom-vp.top)-(h/2), buffer );
if( i != 10 ){
bheight = (vp.bottom-vp.top) - h - 1;
bar3d( j, (vp.bottom-vp.top-h)-(barheight[i]*ystep), j+xstep, bheight, 15, 1 );
}
j += xstep;
}
Pause(); /* Pause for user's response */
}
/* */
/* RANDOMBARS: Display random bars */
/* */
void RandomBars(void)
{
int color;
MainWindow( "Random Bars" );
StatusLine( "Esc aborts or press a key..." ); /* Put msg at bottom of screen */
while( !kbhit() ){ /* Until user enters a key... */
color = random( MaxColors-1 )+1;
setcolor( color );
setfillstyle( random(11)+1, color );
bar3d( random( getmaxx() ), random( getmaxy() ),
random( getmaxx() ), random( getmaxy() ), 0, OFF);
}
Pause(); /* Pause for user's response */
}
/* */
/* TEXTDEMO: Show each font in several sizes to the user. */
/* */
void TextDemo(void)
{
int charsize[] = {
1, 3, 7, 3, 4 };
int font, size;
int h, x, y, i;
struct viewporttype vp;
char buffer[80];
for( font=0 ; font5 ; ++font ){ /* For each of the four fonts */
sprintf( buffer, "%s Demonstration", Fonts[font] );
MainWindow( buffer );
getviewsettings( vp );
changetextstyle( font, VERT_DIR, charsize[font] );
settextjustify( CENTER_TEXT, BOTTOM_TEXT );
outtextxy( 2*textwidth("M"), vp.bottom - 2*textheight("M"), "Vertical" );
changetextstyle( font, HORIZ_DIR, charsize[font] );
settextjustify( LEFT_TEXT, TOP_TEXT );
outtextxy( 2*textwidth("M"), 2, "Horizontal" );
settextjustify( CENTER_TEXT, CENTER_TEXT );
x = (vp.right - vp.left) / 2;
y = textheight( "H" );
for( i=1 ; i5 ; ++i ){ /* For each of the sizes */
size = (font == SMALL_FONT) ? i+3 : i;
changetextstyle( font, HORIZ_DIR, size );
h = textheight( "H" );
y += h;
sprintf( buffer, "Size %d", size );
outtextxy( x, y, buffer );
}
if( font != DEFAULT_FONT ){ /* Show user declared font size */
y += h / 2; /* Move down the screen */
settextjustify( CENTER_TEXT, TOP_TEXT );
setusercharsize( 5, 6, 3, 2 );
changetextstyle( font, HORIZ_DIR, USER_CHAR_SIZE );
outtextxy( (vp.right-vp.left)/2, y, "User Defined Size" );
}
Pause(); /* Pause to let user look */
} /* End of FONT loop */
}
/* */
/* COLORDEMO: Display the current color palette on the screen. */
/* */
void ColorDemo(void)
{
struct viewporttype vp;
int color, height, width;
int x, y, i, j;
char cnum[5];
MainWindow( "Color Demonstration" ); /* Show demonstration name */
color = 1;
getviewsettings( vp ); /* Get the current window size */
width = 2 * ( (vp.right+1) / 16 ); /* Get box dimensions */
height = 2 * ( (vp.bottom-10) / 10 );
x = width / 2;
y = height / 2; /* Leave 1/2 box border */
for( j=0 ; j3 ; ++j ){ /* Row loop */
for( i=0 ; i5 ; ++i ){ /* Column loop */
setfillstyle(SOLID_FILL, color); /* Set to solid fill in color */
setcolor( color ); /* Set the same border color */
bar( x, y, x+width, y+height ); /* Draw the rectangle */
rectangle( x, y, x+width, y+height ); /* outline the rectangle */
if( color == BLACK ){ /* If box was black... */
setcolor( WHITE ); /* Set drawing color to white */
rectangle( x, y, x+width, y+height ); /* Outline black in white*/
}
itoa( color, cnum, 10 ); /* Convert # to ASCII */
outtextxy( x+(width/2), y+height+4, cnum ); /* Show color # */
color = ++color % MaxColors; /* Advance to the next color */
x += (width / 2) * 3; /* move the column base */
} /* End of Column loop */
y += (height / 2) * 3; /* move the row base */
x = width / 2; /* reset column base */
} /* End of Row loop */
Pause(); /* Pause for user's response */
}
/* */
/* ARCDEMO: Display a random pattern of arcs on the screen */
/* until the user says enough. */
/* */
void ArcDemo(void)
{
int mradius; /* Maximum radius allowed */
int eangle; /* Random end angle of Arc */
struct arccoordstype ai; /* Used to read Arc Cord info */
MainWindow( "Arc Demonstration" );
StatusLine( "ESC Aborts - Press a Key to stop" );
mradius = MaxY / 10; /* Determine the maximum radius */
while( !kbhit() ){ /* Repeat until a key is hit */
setcolor( random( MaxColors - 1 ) + 1 ); /* Randomly select a color */
eangle = random( 358 ) + 1; /* Select an end angle */
arc( random(MaxX), random(MaxY), random(eangle), eangle, mradius );
getarccoords( ai ); /* Read Cord data */
line( ai.x, ai.y, ai.xstart, ai.ystart ); /* line from start to center */
line( ai.x, ai.y, ai.xend, ai.yend ); /* line from end to center */
} /* End of WHILE not KBHIT */
Pause(); /* Wait for user's response */
}
MMsegmentation教程 6: 自定義運行設定
我們已經支持 PyTorch 自帶的所有優化器,唯一需要修改的地方是在配置文件里的 optimizer 域里面。
例如,如果您想使用 ADAM (注意如下操作可能會讓模型表現下降),可以使用如下修改:
為了修改模型的學習率,使用者僅需要修改配置文件里 optimizer 的 lr 即可。
使用者可以參照 PyTorch 的 API 文檔
直接設置參數。
一個自定義的優化器可以按照如下去定義:
假如您想增加一個叫做 MyOptimizer 的優化器,它的參數分別有 a , b , 和 c 。
您需要創建一個叫 mmseg/core/optimizer 的新文件夾。
然后再在文件,即 mmseg/core/optimizer/my_optimizer.py 里面去實現這個新優化器:
為了讓上述定義的模塊被框架發現,首先這個模塊應該被導入到主命名空間 (main namespace) 里。
有兩種方式可以實現它。
mmseg.core.optimizer.my_optimizer 模塊將會在程序運行的開始被導入,并且 MyOptimizer 類將會自動注冊。
需要注意只有包含 MyOptimizer 類的包 (package) 應當被導入。
而 mmseg.core.optimizer.my_optimizer.MyOptimizer 不能 被直接導入。
事實上,使用者完全可以用另一個按這樣導入方法的文件夾結構,只要模塊的根路徑已經被添加到 PYTHONPATH 里面。
之后您可以在配置文件的 optimizer 域里面使用 MyOptimizer
在配置文件里,優化器被定義在 optimizer 域里,如下所示:
為了使用您自己的優化器,這個域可以被改成:
有些模型可能需要在優化器里有一些特別參數的設置,例如 批歸一化層 (BatchNorm layers) 的 權重衰減 (weight decay)。
使用者可以通過自定義優化器的構造器去微調這些細粒度參數。
默認的優化器構造器的實現可以參照 這里 ,它也可以被用作新的優化器構造器的模板。
優化器沒有實現的一些技巧應該通過優化器構造器 (optimizer constructor) 或者鉤子 (hook) 去實現,如設置基于參數的學習率 (parameter-wise learning rates)。我們列出一些常見的設置,它們可以穩定或加速模型的訓練。
如果您有更多的設置,歡迎在 PR 和 issue 里面提交。
我們根據默認的訓練迭代步數 40k/80k 來設置學習率,這在 MMCV 里叫做 PolyLrUpdaterHook 。
我們也支持許多其他的學習率計劃表: 這里 ,例如 CosineAnnealing 和 Poly 計劃表。下面是一些例子:
工作流是一個專門定義運行順序和輪數 (running order and epochs) 的列表 (phase, epochs)。
默認情況下它設置成:
意思是訓練是跑 1 個 epoch。有時候使用者可能想檢查模型在驗證集上的一些指標(如 損失 loss,精確性 accuracy),我們可以這樣設置工作流:
于是 1 個 epoch 訓練,1 個 epoch 驗證將交替運行。
注意 :
如果鉤子已經在 MMCV 里被實現,如下所示,您可以直接修改配置文件來使用鉤子:
以下的常用的鉤子沒有被 custom_hooks 注冊:
在這些鉤子里,只有 logger hook 有 VERY_LOW 優先級,其他的優先級都是 NORMAL 。
上述提及的教程已經包括了如何修改 optimizer_config , momentum_config 和 lr_config 。
這里我們展示我們如何處理 log_config , checkpoint_config 和 evaluation 。
MMCV runner 將使用 checkpoint_config 去初始化 CheckpointHook .
使用者可以設置 max_keep_ckpts 來僅保存一小部分檢查點或者通過 save_optimizer 來決定是否保存優化器的狀態字典 (state dict of optimizer)。 更多使用參數的細節請參考 這里 。
log_config 包裹了許多日志鉤 (logger hooks) 而且能去設置間隔 (intervals)。現在 MMCV 支持 WandbLoggerHook , MlflowLoggerHook 和 TensorboardLoggerHook 。
詳細的使用請參照 文檔 。
evaluation 的配置文件將被用來初始化 EvalHook 。
除了 interval 鍵,其他的像 metric 這樣的參數將被傳遞給 dataset.evaluate() 。
請幫忙提供碳(煤炭)的原子結構圖,感謝!
貌似你給的石墨的吧···煤炭不是純凈物,結構很復雜的。。有硫哇之類的東西:
煤的分子結構很復雜,一些學者提出了煤的復合結構模型,認為煤的有機質可以設想由以下四個部分復合而成。
第一部分,是以化學共價鍵結合為主的三維交聯的大分子,形成不溶性的剛性網絡結構,它的主要前身物來自維管植物中以芳族結構為基礎的木質素。
第二部分,包括相對分子質量一千至數千,相當于瀝青質和前瀝青質的大型和中型分子,這些分子中包含較多的極性官能團,它們以各種物理力為主,或相互締合,或與第一部分大分子中的極性基團相締合,成為三維網絡結構的一部分。
第三部分,包括相對分子質量數百至一千左右,相對于非烴部分,具有較強極性的中小型分子,它們可以分子的形式處于大分子網絡結構的空隙之中,也可以物理力與第一和第二部分相互締合而存在。
第四部分,主要為相對分子質量小于數百的非極性分子,包括各種飽和烴和芳烴,它們多呈游離態而被包絡、吸附或固溶于由以上三部分構成的網絡之中。
摘取至百度詞條