Does the area of the Spike Growth spell work around corners or through total cover?

The spike growth spell has a range of 150 feet, and its description states:

The ground in a 20-foot radius centered on a point within range twists and sprouts hard spikes and thorns. The area becomes difficult terrain for the duration. When a creature moves into or within the area, it takes 2d4 piercing damage for every 5 feet it travels.

The transformation of the ground is camouflaged to look natural. Any creature that can’t see the area at the time the spell is cast must make a Wisdom (Perception) check against your spell save DC to recognize the terrain as hazardous before entering it.

When a creature casts spike growth, do they need to be able to see the center of the circle which spawns the growth? Or can the center or entire growth be behind total cover? Does the area of effect continue around corners, or pass through total cover like a door or thin wall?

Obstacles, and Can Tenser’s Floating Disk move around corners?

The description of the Tenser’s Floating Disk spell says:

This spell creates a circular, horizontal plane of force, 3 feet in diameter and 1 inch thick, that floats 3 feet above the ground in an unoccupied space of your choice that you can see within range. The disk remains for the Duration, and can hold up to 500 pounds. If more weight is placed on it, the spell ends, and everything on the disk falls to the ground.

The disk is immobile while you are within 20 feet of it. If you move more than 20 feet away from it, the disk follows you so that it remains within 20 feet of you. It can move across uneven terrain, up or down stairs, slopes and the like, but it can’t cross an elevation change of 10 feet or more. For example, the disk can’t move across a 10-foot-deep pit, nor could it leave such a pit if it was created at the bottom.

If you move more than 100 feet from the disk (typically because it can’t move around an obstacle to follow you), the spell ends.

Tenser’s Floating Disk follows you at a distance of 20 feet and can’t move around obstacles. What counts as an obstacle? Suppose you are walking down a narrow corridor that turns a corner:

D = disk; W = wizard; * = wall; . = space between wizard and disc; Each space is a 5′ square:

*********  ********* D...W-> *     -> D.* ******* *  *******.*       * *        *.*       * *        *W* 

Does the corner prevent the disk from following you?

If so, would it only be possible to get the disk around the corner if you first moved straight for 20 feet, like making a wide turn in a semi truck? If so, it seems rather useless in some circumstances.

Substance Designer: How to target the corners of random tiles

I’m trying to figure out a way to target the corners of randomly generated tiles so that I can place details there. Take for example putting bolts at every corner of a series of metal plates, for example. You want the bolts to be a consistent distance from the corner, and not to be skewed.

enter image description here

I have been able to create the following effect by a series of combined blurs, so this is generated just from the tile grid.

enter image description here

Here is the method: enter image description here

But this couldn’t really be used to actually place any complex designs in the same locations. How would I go about placing more complex details in those same locations?

How Do I Permanently Disable Hot Corners on Mac?

I have a work computer, and every time I turn it on and log in, hot corners are enabled where when I move my mouse to a corner inadvertently, it locks my screen. This happens all the time in the middle of my work.

Every time, this annoys me, and I go into System Preferences and set all the hot corners options to none. But, the next day or whenever I restart my computer, they come back! I am wondering if anyone knows how to permanently disable them so I don’t need to manually disable them every time I restart my work MacBook.

Is there a terminal command or something I can set to stop Hot Corners settings from resetting back on constantly? I’m guessing my company has defaults that they apply that override the settings on restart.

What are the other alternatives to Photoshop’s “crop and straighten” for scanned images that have rounded corners

I’m scanning a lot of cards and I’m using Photoshop’s automated “crop and straighten” function to auto rotate and crop them after. But the result wasn’t very accurate as some of the sides of the scans were clearly cropped off. I think maybe that has to do with my cards having rounded corners? What other alternative program do I have on this?

How to speed up the retrieval of the corners of a mask

I have trained a polygon detector neural network to recognize the mask of “quadrilateral” (the mask generates curvy lines so it’s not exactly a quadrilateral). I would like to get the corners of the quadrilateral.

I believe the best approach is to get the points in the mask that are closest to the corners of the image. First question is are these valid assumptions? Second question is is this the best approach?

Top-Left is minimum distance between (0,0) and mask.

Top-Right is minimum distance between (width, 0) and mask.

Bottom-Left is minimum distance between (0, height) and mask.

Bottom-Right is minimum distance between (width, height) and mask.

The last question is my implementation is slow. The Neural network generates the mask in .7 seconds, but it’s taking my loop ~2 seconds to find the corners. Can this be sped up?

def predict(self,img):     # Read image     image = img     height,width,channels=img.shape      # Detect objects     r = self.model.detect([image], verbose=0)[0]     mask=r['masks']     print(mask)     x1=0     x2=0     x3=0     x4=0     y1=0     y2=0     y3=0     y4=0     minDistanceTopLeft=999999     minDistanceTopRight=999999     minDistanceBottomLeft=999999     minDistanceBottomRight=999999     xAverage=0.0     yAverage=0.0     for x in range(0, len(mask)):         for y in range(0, len(mask[x])):             if(mask[x][y]):                 distToTopLeft=(x-0)*(x-0)+(y-0)*(y-0)                 if(distToTopLeft<minDistanceTopLeft):                     minDistanceTopLeft=distToTopLeft                     x1=x                     y1=y                 distToTopRight=(x-width)*(x-width)+(y-0)*(y-0)                 if(distToTopRight<minDistanceTopRight):                     minDistanceTopRight=distToTopRight                     x2=x                     y2=y                 distToBottomLeft=(x-0)*(x-0)+(y-height)*(y-height)                 if(distToBottomLeft<minDistanceBottomLeft):                     minDistanceBottomLeft=distToBottomLeft                     x4=x                     y4=y                 distToBottomRight=(x-width)*(x-width)+(y-height)*(y-height)                 if(distToBottomRight<minDistanceBottomRight):                     minDistanceBottomRight=distToBottomRight                     x3=x                     y3=y     toReturn=np.array([x1, y1, x2, y2, x3, y3, x4, y4, 1])     return [toReturn.tolist()] 

Mask is a numpy array of booleans (ie)

[[[False]   [False]   [False]   ...   [False]   [False]   [False]]   [[False]   [False]   [False]   ...   [False]   [False]   [False]]   [[False]   [False]   [False]   ...   [False]   [False]   [False]]    ...   [[False]   [False]   [False]   ...   [False]   [False]   [False]]   [[False]   [False]   [False]   ...   [False]   [False]   [False]]   [[False]   [False]   [False]   ...   [False]   [False]   [False]]]