### Godot version

3.5.1 custom build

### System information

N/A

### Issue description

When using Line2D, I noticed a discrepancy with UVs depending on the end cap mode.

Here are some examples using a tiled repeating texture:

### No capping ✔️ 
![image](https://user-images.githubusercontent.com/95356449/218230984-e5d507d4-7af7-4967-aee7-79c8daa206ff.png)

### Begin cap: Box ✔️ 
![image](https://user-images.githubusercontent.com/95356449/218231092-311370cc-7ff8-4699-976b-c4581eaada0a.png)

### End cap: Box ❌ 
![image](https://user-images.githubusercontent.com/95356449/218231131-00ddf4f7-2a9a-4740-a445-a8601ab026e1.png)


### Steps to reproduce

Create a Line2D
Add a texture with repeating enabled
Set end cap mode to Box

### Minimal reproduction project

not needed, bugfix pr incoming
pos_up0 += u0 * hw * width_factor;
	pos_down0 -= u0 * hw * width_factor;
	
	if (begin_cap_mode == Line2D::LINE_CAP_BOX) {
		
		pos_up0 -= f0 * hw * width_factor;
		pos_down0 -= f0 * hw * width_factor;
		current_distance0 += hw * width_factor;
		current_distance1 = current_distance0;
	} else if (begin_cap_mode == Line2D::LINE_CAP_ROUND) {
		if (texture_mode == Line2D::LINE_TEXTURE_TILE) {
			uvx0 = width_factor * 0.5f / tile_aspect;
		} else if (texture_mode == Line2D::LINE_TEXTURE_STRETCH) {
			uvx0 = width * width_factor / total_distance;
		}
		new_arc(pos0, pos_up0 - pos0, -Math_PI, color0, Rect2(0.f, 0.f, uvx0 * 2, 1.f));
		current_distance0 += hw * width_factor;
		current_distance1 = current_distance0;
	}
	strip_begin(pos_up0, pos_down0, color0, uvx0);
	/*
	 *  pos_up0 ------------- pos_up1 --------------------
	 *     |                     |
	 *   pos0 - - - - - - - - - pos1 - - - - - - - - - pos2
	 *     |                     |
	 * pos_down0 ------------ pos_down1 ------------------
	 *
	 *   i-1                     i                      i+1
	 */