@@ -178,96 +178,9 @@ export class SNBeamLayer {
178178 // 所有音符都画竖线,只有落单的八分/十六分音符竖线底部加标准小尾巴(斜线+左弧线)
179179 group . forEach ( ( note ) => {
180180 const { string } = note . getGuitarNotePosition ( ) ;
181- // 如果是休止符,绘制对应的休止符符号并跳过后续绘制(不依赖string)
182- if ( String ( note . note ) === '0' ) {
183- let restSymbolKey : keyof typeof BravuraMusicSymbols . SYMBOLS | undefined ;
184- // 根据nodeTime选择休止符符号
185- switch ( note . nodeTime ) {
186- case 4 : // 全休止符
187- restSymbolKey = 'REST_WHOLE' ;
188- break ;
189- case 2 : // 二分休止符
190- restSymbolKey = 'REST_HALF' ;
191- break ;
192- case 1 : // 四分休止符
193- restSymbolKey = 'REST_QUARTER' ;
194- break ;
195- case 0.5 : // 八分休止符
196- restSymbolKey = 'REST_EIGHTH' ;
197- break ;
198- case 0.25 : // 十六分休止符
199- restSymbolKey = 'REST_SIXTEENTH' ;
200- break ;
201- case 0.125 : // 三十二分休止符
202- restSymbolKey = 'REST_32ND' ;
203- break ;
204- default :
205- // 默认四分休止符
206- restSymbolKey = 'REST_QUARTER' ;
207- break ;
208- }
209- if ( restSymbolKey ) {
210- const x = note . innerX + note . innerWidth / 2 ; // 获取音符的中心x坐标
211- // 绘制休止符符号,位置需要微调
212- SNBeamLayer . el . appendChild (
213- BravuraMusicSymbols . createSymbol ( restSymbolKey , {
214- x : x , // 水平居中
215- y : lineTop + lineHeight * 3 + 5 , // 垂直位置,大约在六线谱中间位置
216- fontSize : 20 , // 适当放大
217- fontFamily : 'Bravura' , // 使用Bravura字体
218- textAnchor : 'middle' , // 水平居中对齐
219- } ) ,
220- ) ;
221- }
222- return ; // 跳过当前休止符的后续绘制(竖线和符尾)
223- }
224181 if ( string ) {
225182 const x = note . innerX + note . innerWidth / 2 ;
226183 const y = lineTop + lineHeight * ( string - 1 ) + lineHeight / 2 ;
227- // 如果是休止符,绘制对应的休止符符号并跳过后续绘制
228- if ( String ( note . note ) === '0' ) {
229- let restSymbolKey :
230- | keyof typeof BravuraMusicSymbols . SYMBOLS
231- | undefined ;
232- // 根据nodeTime选择休止符符号
233- switch ( note . nodeTime ) {
234- case 4 : // 全休止符
235- restSymbolKey = 'REST_WHOLE' ;
236- break ;
237- case 2 : // 二分休止符
238- restSymbolKey = 'REST_HALF' ;
239- break ;
240- case 1 : // 四分休止符
241- restSymbolKey = 'REST_QUARTER' ;
242- break ;
243- case 0.5 : // 八分休止符
244- restSymbolKey = 'REST_EIGHTH' ;
245- break ;
246- case 0.25 : // 十六分休止符
247- restSymbolKey = 'REST_SIXTEENTH' ;
248- break ;
249- case 0.125 : // 三十二分休止符
250- restSymbolKey = 'REST_32ND' ;
251- break ;
252- default :
253- // 默认四分休止符
254- restSymbolKey = 'REST_QUARTER' ;
255- break ;
256- }
257- if ( restSymbolKey ) {
258- // 绘制休止符符号,位置需要微调
259- SNBeamLayer . el . appendChild (
260- BravuraMusicSymbols . createSymbol ( restSymbolKey , {
261- x : x , // 水平居中
262- y : lineTop + lineHeight * 3 + 5 , // 垂直位置,大约在六线谱中间位置
263- fontSize : 20 , // 适当放大
264- fontFamily : 'Bravura' , // 使用Bravura字体
265- textAnchor : 'middle' , // 水平居中对齐
266- } ) ,
267- ) ;
268- }
269- return ; // 跳过当前休止符的后续绘制
270- }
271184 // 竖线
272185 SNBeamLayer . el . appendChild (
273186 SvgUtils . createLine ( {
0 commit comments